Class: Redwood::DraftManager

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/sup/draft.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Singleton

included

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

#sourceObject

Returns the value of attribute source.



6
7
8
# File 'lib/sup/draft.rb', line 6

def source
  @source
end

Class Method Details

.source_idObject



13
# File 'lib/sup/draft.rb', line 13

def self.source_id; 9999; end

.source_nameObject



12
# File 'lib/sup/draft.rb', line 12

def self.source_name; "sup://drafts"; end

Instance Method Details

#discard(m) ⇒ Object

Raises:

  • (ArgumentError)


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_sourceObject



14
# File 'lib/sup/draft.rb', line 14

def new_source; @source = DraftLoader.new; end

#write_draftObject



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:UTF-8") { |f| yield f }
  PollManager.poll_from @source
end