class MultipleMan::AttributeExtractor
Attributes
fields[RW]
identifier[RW]
include_previous[RW]
record[RW]
Public Class Methods
new(record, fields, include_previous = false)
click to toggle source
# File lib/multiple_man/attribute_extractor.rb, line 6 def initialize(record, fields, include_previous = false) raise "Fields must be specified" unless fields self.include_previous = include_previous self.record = record self.fields = fields end
Public Instance Methods
as_json()
click to toggle source
# File lib/multiple_man/attribute_extractor.rb, line 14 def as_json if include_previous data.merge({previous: data("_was")}) else data end end
Private Instance Methods
data(suffix = nil)
click to toggle source
# File lib/multiple_man/attribute_extractor.rb, line 24 def data(suffix = nil) Hash[fields.map do |field| get_field(field, suffix) end.reject(&:nil?)] end
get_field(field, suffix)
click to toggle source
# File lib/multiple_man/attribute_extractor.rb, line 30 def get_field(field, suffix) method = "#{field}#{suffix}" [field, record.send(method)] if record.respond_to? method end