Module: Datamappify::Data::Criteria::Relational::Concerns::SetCriteria

Included in:
FindByKey, SaveByKey
Defined in:
lib/datamappify/data/criteria/relational/concerns/set_criteria.rb

Instance Method Summary collapse

Instance Method Details

#build_criteriaObject (private)



17
18
19
20
21
22
23
24
25
# 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_mappingObject (private)



32
33
34
# 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_mappingObject (private)



27
28
29
30
# 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?Boolean (private)

Returns:

  • (Boolean)


36
37
38
# File 'lib/datamappify/data/criteria/relational/concerns/set_criteria.rb', line 36

def finder?
  self.class.name =~ /Find/
end

#initialize(*args) ⇒ Object



7
8
9
10
11
12
13
# 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