class Renogen::ChangeLog::Writer
Writes out the change log
Attributes
formatter[R]
Public Class Methods
new(formatter)
click to toggle source
# File lib/renogen/change_log/writer.rb, line 5 def initialize(formatter) @formatter = formatter end
Public Instance Methods
write!(changelog)
click to toggle source
Writes out the change log
@param changelog [ChangeLog::Model]
# File lib/renogen/change_log/writer.rb, line 12 def write!(changelog) puts formatter.write_header(formatter.header(changelog)) unless formatter.write_header(formatter.header(changelog)).nil? if formatter.table_formatter? write_by_table!(changelog) else write_by_group!(changelog) end puts formatter.write_footer(changelog) unless formatter.write_footer(changelog).nil? end
write_by_group!(changelog)
click to toggle source
Writes out the change log by group
@param changelog [ChangeLog::Model]
# File lib/renogen/change_log/writer.rb, line 25 def write_by_group!(changelog) output_groups(changelog.groups) end
write_by_table!(changelog)
click to toggle source
Writes out the change log by item
@param changelog [ChangeLog::Model]
# File lib/renogen/change_log/writer.rb, line 32 def write_by_table!(changelog) changelog.tickets.each do |_, ticket| puts formatter.write_change(ticket) end end
Protected Instance Methods
deduped_changes(changes)
click to toggle source
# File lib/renogen/change_log/writer.rb, line 58 def deduped_changes(changes) return changes unless config.remove_duplicates changes.uniq { |c| c.to_s } end
output_change(change)
click to toggle source
# File lib/renogen/change_log/writer.rb, line 42 def output_change(change) if change.list? change.each { |item| puts formatter.write_change(item) } else puts formatter.write_change(change.to_s) if change.to_s.size > 0 end end
output_groups(groups)
click to toggle source
# File lib/renogen/change_log/writer.rb, line 50 def output_groups(groups) groups.each do |group, changes| puts formatter.write_group(group) deduped_changes(changes).each { |change| output_change(change) } puts formatter.write_group_end end end
Private Instance Methods
config()
click to toggle source
# File lib/renogen/change_log/writer.rb, line 66 def config Config.instance end