class ARMocker::Relation::HasMany
A wrapper for models intended to act as an ActiveRecord::Relation for a has_many relationship
Public Class Methods
new(members)
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 8 def initialize(members) @members = members.is_a?(ARMocker::Models) ? members.to_a : members end
Public Instance Methods
build(attributes = {})
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 17 def build(attributes = {}) new_member = new_member(attributes.merge(persisted: false)) @members << new_member new_member end
create(attributes = {})
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 23 def create(attributes = {}) created_member = new_member(attributes.merge(persisted: true)) @members << created_member created_member end
delete(member)
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 29 def delete(member) @members.delete(member) true end
each(&block)
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 12 def each(&block) @members.each(&block) self end
to_ary()
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 34 def to_ary @members end
Private Instance Methods
new_member(attributes = {})
click to toggle source
# File lib/a_r_mocker/relation/has_many.rb, line 38 def new_member(attributes = {}) Model.new(attributes.merge(persisted: attributes.delete(:persisted))) end