class Dossier::Segment::Rows
Attributes
definition[RW]
report[RW]
segment[RW]
segmenter[RW]
Public Class Methods
new(segmenter, segment, definition)
click to toggle source
# File lib/dossier/segment/rows.rb, line 6 def initialize(segmenter, segment, definition) self.segmenter = segmenter self.report = segmenter.report self.segment = segment self.definition = definition end
Public Instance Methods
each() { |format(summarize(truncate(row)))| ... }
click to toggle source
# File lib/dossier/segment/rows.rb, line 19 def each segmenter_data.each { |row| yield format(summarize(truncate(row))) } end
inspect()
click to toggle source
# File lib/dossier/segment/rows.rb, line 23 def inspect "#<#{self.class.name}:@rows.count=#{rows.count}>" end
raw_headers()
click to toggle source
# File lib/dossier/segment/rows.rb, line 15 def raw_headers segmenter.headers end
Private Instance Methods
segmenter_data()
click to toggle source
# File lib/dossier/segment/rows.rb, line 29 def segmenter_data @segmenter_data ||= segmenter.data.fetch(segment.key_path) end
summarize(row)
click to toggle source
# File lib/dossier/segment/rows.rb, line 37 def summarize(row) row.tap { |r| [segmenter, segment.chain].flatten.each { |s| s.summarize row } } end
truncate(row)
click to toggle source
# File lib/dossier/segment/rows.rb, line 33 def truncate(row) row.dup.tap { |r| segmenter.header_index_map.values.sort.each_with_index { |i, j| r.delete_at(i - j) } } end