Class: Redwood::DraftLoader
Instance Attribute Summary collapse
Attributes inherited from Source
#cur_offset
Instance Method Summary
collapse
Methods inherited from Source
#==, #check, #done?, #file_path, #is_source_for?, #reset!, #seek_to!, #usual
Constructor Details
#initialize(cur_offset = 0) ⇒ DraftLoader
Returns a new instance of DraftLoader.
47
48
49
50
51
52
|
# File 'lib/sup/draft.rb', line 47
def initialize cur_offset=0
dir = Redwood::DRAFT_DIR
Dir.mkdir dir unless File.exists? dir
super DraftManager.source_name, cur_offset, true, false
@dir = dir
end
|
Instance Attribute Details
Returns the value of attribute dir.
44
45
46
|
# File 'lib/sup/draft.rb', line 44
def dir
@dir
end
|
Instance Method Details
58
59
60
61
62
63
64
65
66
|
# File 'lib/sup/draft.rb', line 58
def each
ids = get_ids
ids.each do |id|
if id >= cur_offset
self.cur_offset = id + 1
yield [id, [:draft, :inbox]]
end
end
end
|
#end_offset ⇒ Object
107
108
109
110
|
# File 'lib/sup/draft.rb', line 107
def end_offset
ids = get_ids
ids.empty? ? 0 : (ids.last + 1)
end
|
#fn_for_offset(o) ⇒ Object
76
|
# File 'lib/sup/draft.rb', line 76
def fn_for_offset o; File.join(@dir, o.to_s); end
|
#gen_offset ⇒ Object
68
69
70
71
72
73
74
|
# File 'lib/sup/draft.rb', line 68
def gen_offset
i = cur_offset
while File.exists? fn_for_offset(i)
i += 1
end
i
end
|
78
79
80
81
82
|
# File 'lib/sup/draft.rb', line 78
def offset
File.open fn_for_offset(offset) do |f|
return MBox::(f)
end
end
|
#load_message(offset) ⇒ Object
84
85
86
87
88
89
90
|
# File 'lib/sup/draft.rb', line 84
def load_message 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
|
92
93
94
95
96
97
98
99
100
|
# File 'lib/sup/draft.rb', line 92
def offset
ret = ""
File.open fn_for_offset(offset) do |f|
until f.eof? || (l = f.gets) =~ /^$/
ret += l
end
end
ret
end
|
#raw_message(offset) ⇒ Object
102
103
104
|
# File 'lib/sup/draft.rb', line 102
def raw_message offset
IO.readlines(fn_for_offset(offset)).join
end
|
#start_offset ⇒ Object
106
|
# File 'lib/sup/draft.rb', line 106
def start_offset; 0; end
|