Class: Xing::Builders::OrderedListDifferenceBuilder

Inherits:
ListDifferenceBuilder show all
Defined in:
lib/xing/builders/ordered_list_difference_builder.rb

Instance Attribute Summary

Attributes inherited from ListDifferenceBuilder

#errors

Instance Method Summary collapse

Methods inherited from ListDifferenceBuilder

#build, #initialize, #locator_for, #set_locator, #sort_json_items

Methods included from Services::Locator

#normalize_path, #route_to, #router

Constructor Details

This class inherits a constructor from Xing::Builders::ListDifferenceBuilder

Instance Method Details

#map_itemsObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/xing/builders/ordered_list_difference_builder.rb', line 4

def map_items
  @new_list = []
  @list_data.each_with_index do |item, index|

    mapper = @mapper_class.new(item[:incoming], item[:locator])

    # Sets association, attributes and position
    @collection << mapper.record
    mapper.perform_mapping
    set_position(mapper.record, index)

    @new_list << mapper
    @errors[index] = mapper.errors[:data] unless mapper.errors[:data].blank?
  end
end

#set_position(record, index) ⇒ Object



20
21
22
# File 'lib/xing/builders/ordered_list_difference_builder.rb', line 20

def set_position(record, index)
   record.position = index if record.has_attribute?(:position)
end