Class: AtomLog::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(file, lines = nil) ⇒ Generator

Returns a new instance of Generator.



5
6
7
8
9
10
# File 'lib/generator.rb', line 5

def initialize(file, lines = nil)
  @rows = AtomLog::Parser.new(file, lines).parse
  @builder = Builder::XmlMarkup.new(:target => @xml = "")
  @builder.instruct! :xml, :version => "1.0", :encoding => "utf-8"
  @u = UUID.new
end

Instance Method Details

#line_to_xml(line) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/generator.rb', line 22

def line_to_xml(line)
  @builder.entry do
    @builder.id @u.generate
    @builder.updated line[:date]
    @builder.pid line[:pid]
    @builder.title "#{line[:severity]} -- #{line[:pid]}"
    @builder.summary line[:msg]
  end
end

#preamble_xmlObject



12
13
14
15
16
17
18
19
20
# File 'lib/generator.rb', line 12

def preamble_xml
  @builder.title "AtomLog"
  @builder.subtitle "AtomLog for a log"
  @builder.updated Time.now
  @builder.author do
    @builder.name "AtomLog"
  end
  @builder.id @u.generate
end

#to_atomObject



32
33
34
35
36
37
38
39
40
# File 'lib/generator.rb', line 32

def to_atom
  @builder.feed :xmlns => "http://www.w3.org/2005/Atom" do
    self.preamble_xml
    @rows.each do |row|
      self.line_to_xml(row)
    end
  end
  @xml
end