Class: CSVStepImporter::Model::Reflector
- Inherits:
-
Node
- Object
- Base
- Node
- CSVStepImporter::Model::Reflector
show all
- Defined in:
- lib/csv_step_importer/model/reflector.rb
Instance Attribute Summary
Attributes inherited from Node
#children, #env, #parent
Instance Method Summary
collapse
Methods inherited from Node
#add_children, #initialize, #validate_children
Methods inherited from Base
#assign_attributes, #inspect, #persisted?, #save, #save!, #to_s, #update
Instance Method Details
#create_or_update ⇒ Object
13
14
15
16
|
# File 'lib/csv_step_importer/model/reflector.rb', line 13
def create_or_update
self.dao_ids = ids
true
end
|
#dao_ids=(ids) ⇒ Object
41
42
43
44
45
46
47
|
# File 'lib/csv_step_importer/model/reflector.rb', line 41
def dao_ids=(ids)
raise "Unable to find saved data. Please check your scope." unless ids.size == daos.size
daos.each_with_index do |dao, index|
dao.id = dao.value[:id] = ids[index]
end
end
|
#find_ids_scope ⇒ Object
23
24
25
26
27
28
|
# File 'lib/csv_step_importer/model/reflector.rb', line 23
def find_ids_scope
finder_scope
.where(finder_key => finder_values)
.order(["field(#{finder_key}, ?)", finder_values])
.pluck(:id)
end
|
#finder_key ⇒ Object
18
19
20
21
|
# File 'lib/csv_step_importer/model/reflector.rb', line 18
def finder_key
raise "not yet supported" unless finder_keys.size == 1
finder_keys.first
end
|
#finder_values ⇒ Object
30
31
32
33
34
|
# File 'lib/csv_step_importer/model/reflector.rb', line 30
def finder_values
@finder_values ||= daos.collect do |dao|
dao.value[finder_key]
end
end
|
#ids ⇒ Object
36
37
38
|
# File 'lib/csv_step_importer/model/reflector.rb', line 36
def ids
@ids ||= find_ids_scope.to_a
end
|