36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/logbook/builder.rb', line 36
def self.build(contents)
current_properties = {}
entries_and_properties = new.apply(Parser.new.parse(contents))
logbook_page = entries_and_properties.inject(Page.new) do |page, entry_or_property|
case entry_or_property
when Property
current_properties[entry_or_property.name] = entry_or_property.value
page
when TaskDefinition, TaskEntry
entry_or_property.merge_page_properties(current_properties)
page.add(entry_or_property)
page
when LogEntry
entry_or_property.properties = current_properties.dup
page.add(entry_or_property)
page
else
page
end
end
logbook_page.properties = current_properties
logbook_page
end
|