class MR::Factory::RecordStack::RecordData
Attributes
association_datas[R]
record[R]
Public Class Methods
new(record)
click to toggle source
# File lib/mr/factory/record_stack.rb, line 90 def initialize(record) @record = record @association_datas = build_association_datas(@record) end
Public Instance Methods
create_record()
click to toggle source
# File lib/mr/factory/record_stack.rb, line 103 def create_record if @record.new_record? @record.save! @record.reset_save_called if @record.kind_of?(MR::FakeRecord) end end
destroy_record()
click to toggle source
# File lib/mr/factory/record_stack.rb, line 110 def destroy_record @record.destroy unless @record.destroyed? end
record_class()
click to toggle source
# File lib/mr/factory/record_stack.rb, line 95 def record_class @record.class end
refresh_record_associations()
click to toggle source
ensures records have their associations foreign type/key attributes set by re-setting the association to its current value
# File lib/mr/factory/record_stack.rb, line 116 def refresh_record_associations @association_datas.each do |association_data| associated_record = @record.send(association_data.name) @record.send("#{association_data.name}=", associated_record) end end
set_association(name, record_data)
click to toggle source
# File lib/mr/factory/record_stack.rb, line 99 def set_association(name, record_data) @record.send("#{name}=", record_data.record) end
Private Instance Methods
build_association_datas(record)
click to toggle source
# File lib/mr/factory/record_stack.rb, line 125 def build_association_datas(record) record.class.reflect_on_all_associations(:belongs_to).map do |reflection| AssociationData.new(record.association(reflection.name)) end.compact.sort end