class Redwood::DraftLoader
Attributes
dir[RW]
Public Class Methods
new(dir=Redwood::DRAFT_DIR)
click to toggle source
Calls superclass method
# File lib/sup/draft.rb, line 35 def initialize dir=Redwood::DRAFT_DIR Dir.mkdir dir unless File.exist? dir super DraftManager.source_name, true, false @dir = dir @cur_offset = 0 end
Public Instance Methods
each_raw_message_line(offset) { |gets until eof?| ... }
click to toggle source
# File lib/sup/draft.rb, line 96 def each_raw_message_line offset File.open(fn_for_offset(offset), "r:UTF-8") do |f| yield f.gets until f.eof? end end
end_offset()
click to toggle source
# File lib/sup/draft.rb, line 107 def end_offset ids = get_ids ids.empty? ? 0 : (ids.last + 1) end
fn_for_offset(o;)
click to toggle source
# File lib/sup/draft.rb, line 71 def fn_for_offset o; File.join(@dir, o.to_s); end
gen_offset()
click to toggle source
# File lib/sup/draft.rb, line 63 def gen_offset i = @cur_offset while File.exist? fn_for_offset(i) i += 1 end i end
id()
click to toggle source
# File lib/sup/draft.rb, line 46 def id; DraftManager.source_id; end
load_header(offset)
click to toggle source
# File lib/sup/draft.rb, line 73 def load_header offset File.open(fn_for_offset(offset)) { |f| parse_raw_email_header f } end
load_message(offset)
click to toggle source
# File lib/sup/draft.rb, line 77 def load_message offset raise SourceError, "Draft not found" unless File.exist? fn_for_offset(offset) File.open fn_for_offset(offset) do |f| RMail::Mailbox::MBoxReader.new(f).each_message do |input| return RMail::Parser.read(input) end end end
poll() { |:add, :info => id, :labels => [:draft, :inbox], :progress => 0| ... }
click to toggle source
# File lib/sup/draft.rb, line 50 def poll ids = get_ids ids.each do |id| if id >= @cur_offset @cur_offset = id + 1 yield :add, :info => id, :labels => [:draft, :inbox], :progress => 0.0 end end end
properly_initialized?()
click to toggle source
# File lib/sup/draft.rb, line 42 def properly_initialized? !!(@dir && @cur_offset) end
raw_header(offset)
click to toggle source
# File lib/sup/draft.rb, line 86 def raw_header offset ret = "" File.open(fn_for_offset(offset), "r:UTF-8") do |f| until f.eof? || (l = f.gets) =~ /^$/ ret += l end end ret end
raw_message(offset)
click to toggle source
# File lib/sup/draft.rb, line 102 def raw_message offset IO.read(fn_for_offset(offset), :encoding => "UTF-8") end
start_offset()
click to toggle source
# File lib/sup/draft.rb, line 106 def start_offset; 0; end
to_s()
click to toggle source
# File lib/sup/draft.rb, line 47 def to_s; DraftManager.source_name; end
uri()
click to toggle source
# File lib/sup/draft.rb, line 48 def uri; DraftManager.source_name; end
Private Instance Methods
get_ids()
click to toggle source
# File lib/sup/draft.rb, line 114 def get_ids Dir.entries(@dir).select { |x| x =~ /^\d+$/ }.map { |x| x.to_i }.sort end