Skip to content

Instantly share code, notes, and snippets.

@craigw
Created February 1, 2010 15:19
Show Gist options
  • Save craigw/291742 to your computer and use it in GitHub Desktop.
Save craigw/291742 to your computer and use it in GitHub Desktop.
// Library:
Email = {}
Email.Message = function(raw_source) {
var parts = raw_source.split(/\r\n\r\n/);
this.headers = parts[0];
this.body = parts[1];
}
Email.Message.prototype.header(header_name, value) {
if(!value) {
// Look up the header +header_name+
} else {
// Set the header +header_name+ to +value+
}
}
}
// Client code:
var email = new Email.Message(source),
date = email.header("date");
// Library:
Email = {}
Email.Message = function(raw_source) {
var parts = raw_source.split(/\r\n\r\n/);
this.header = {};
for(var i = 0; i <= parts[0].size; i++) {
var header_parts = parts[0][i].split(/:/, 2);
this.header[header_parts[0]] = header_parts[1];
}
this.body = parts[1];
}
// Client code:
var email = new Email.Message(source),
date = email.header.date;
// Library:
Email = {}
Email.Message = function(raw_source) {
var parts = raw_source.split(/\r\n\r\n/);
this.header = {};
for(var i = 0; i <= parts[0].size; i++) {
var header_parts = parts[0][i].split(/:/, 2);
this.header._values[header_parts[0]] = header_parts[1];
this.header[header_parts[0]] = function(value) {
if(typeof(value) == "undefined") {
return this.header._values[header_parts[0]];
} else {
this.header._values[header_parts[0]] = value;
}
}
}
this.body = parts[1];
}
// Client code:
var email = new Email.Message(source);
if(email.header.date) {
var date = email.header.date();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment