Class: Redwood::DraftManager
- Includes:
- Singleton
- Defined in:
- lib/sup/draft.rb
Instance Attribute Summary collapse
-
#source ⇒ Object
Returns the value of attribute source.
Class Method Summary collapse
Instance Method Summary collapse
- #discard(m) ⇒ Object
-
#initialize(dir) ⇒ DraftManager
constructor
A new instance of DraftManager.
- #new_source ⇒ Object
- #write_draft ⇒ Object
Methods included from Singleton
Constructor Details
#initialize(dir) ⇒ DraftManager
Returns a new instance of DraftManager.
7 8 9 10 |
# File 'lib/sup/draft.rb', line 7 def initialize dir @dir = dir @source = nil end |
Instance Attribute Details
#source ⇒ Object
Returns the value of attribute source.
6 7 8 |
# File 'lib/sup/draft.rb', line 6 def source @source end |
Class Method Details
.source_id ⇒ Object
13 |
# File 'lib/sup/draft.rb', line 13 def self.source_id; 9999; end |
.source_name ⇒ Object
12 |
# File 'lib/sup/draft.rb', line 12 def self.source_name; "sup://drafts"; end |
Instance Method Details
#discard(m) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/sup/draft.rb', line 23 def discard m raise ArgumentError, "not a draft: source id #{m.source.id.inspect}, should be #{DraftManager.source_id.inspect} for #{m.id.inspect}" unless m.source.id.to_i == DraftManager.source_id Index.delete m.id File.delete @source.fn_for_offset(m.source_info) rescue Errono::ENOENT UpdateManager.relay self, :single_message_deleted, m end |
#new_source ⇒ Object
14 |
# File 'lib/sup/draft.rb', line 14 def new_source; @source = DraftLoader.new; end |
#write_draft ⇒ Object
16 17 18 19 20 21 |
# File 'lib/sup/draft.rb', line 16 def write_draft offset = @source.gen_offset fn = @source.fn_for_offset offset File.open(fn, "w") { |f| yield f } PollManager.poll_from @source end |