class Sprig::Reap::Record
Attributes
model[R]
record[R]
sprig_id[W]
Public Class Methods
new(record, model)
click to toggle source
# File lib/sprig/reap/record.rb, line 8 def initialize(record, model) @record = record @model = model end
Public Instance Methods
attributes()
click to toggle source
# File lib/sprig/reap/record.rb, line 13 def attributes @attributes ||= model.attributes.delete_if { |a| a == "id" } | model.associations.map(&:has_and_belongs_to_many_attr).compact end
sprig_id()
click to toggle source
# File lib/sprig/reap/record.rb, line 29 def sprig_id @sprig_id ||= model.existing_sprig_ids.include?(record.id) ? model.generate_sprig_id : record.id end
to_hash()
click to toggle source
# File lib/sprig/reap/record.rb, line 17 def to_hash attributes.reduce({"sprig_id" => sprig_id}) do |hash, attr| value = Value.for(self, attr) if Sprig::Reap.omit_empty_attrs && empty?(value) hash else hash.merge(attr => value) end end end
Private Instance Methods
empty?(value)
click to toggle source
# File lib/sprig/reap/record.rb, line 35 def empty?(value) value.respond_to?(:empty?) ? value.empty? : value.nil? end