module Flatter::Mapper::Collection::Concern
Public Instance Methods
add_item(params)
click to toggle source
# File lib/flatter/mapper/collection.rb, line 69 def add_item(params) collection << clone.tap do |mapper| item = build_collection_item mapper.reset_locals! mapper.set_target!(item) mapper.item_index = collection.length mapper.write(params) add_item_to_target(item) end end
delete_target_item(item)
click to toggle source
# File lib/flatter/mapper/collection.rb, line 61 def delete_target_item(item) !!target.delete(item) end
update_item(key, params)
click to toggle source
# File lib/flatter/mapper/collection.rb, line 65 def update_item(key, params) collection.find{ |item| item[:key] == key }.write(params) end
Private Instance Methods
add_item_to_target(item)
click to toggle source
# File lib/flatter/mapper/collection.rb, line 85 def add_item_to_target(item) target << item unless target.include?(item) end
build_collection_item()
click to toggle source
# File lib/flatter/mapper/collection.rb, line 80 def build_collection_item target_class.new end
remove_items(keys)
click to toggle source
# File lib/flatter/mapper/collection.rb, line 53 def remove_items(keys) collection.reject! do |item| (item[:key].nil? || keys.include?(item[:key])) && delete_target_item(item.target) end end