module Datamappify::Data::Criteria::Relational::Concerns::SetCriteria

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/datamappify/data/criteria/relational/concerns/set_criteria.rb, line 7
def initialize(*args)
  super

  if entity.id
    self.criteria = build_criteria
  end
end

Private Instance Methods

build_criteria() click to toggle source
# File lib/datamappify/data/criteria/relational/concerns/set_criteria.rb, line 17
def build_criteria
  if options[:via].nil?
    criteria_for_normal_mapping
  elsif finder?
    criteria_for_reverse_mapping
  else
    {}
  end
end
criteria_for_normal_mapping() click to toggle source
# File lib/datamappify/data/criteria/relational/concerns/set_criteria.rb, line 32
def criteria_for_normal_mapping
  { key_name => entity.id }
end
criteria_for_reverse_mapping() click to toggle source
# File lib/datamappify/data/criteria/relational/concerns/set_criteria.rb, line 27
def criteria_for_reverse_mapping
  reverse_id = options[:primary_record].send(options[:via])
  reverse_id ? { :id => reverse_id } : {}
end
finder?() click to toggle source
# File lib/datamappify/data/criteria/relational/concerns/set_criteria.rb, line 36
def finder?
  self.class.name =~ /Find/
end