Sha256: 6a8f03dd94d979d56ccb1e7c3aa61e495af7c9b3f87b06d895c6704dcc1d7fd2
Contents?: true
Size: 675 Bytes
Versions: 6
Compression:
Stored size: 675 Bytes
Contents
# -*- encoding : utf-8 -*- module RademadeAdmin class Linker def initialize(model_info, item, relation) @model_info = model_info @item = item @related_data_item = model_info.data_items.data_item(relation) end def link(id) process_link { |old_data| old_data << @related_data_item.relation.related_entities(id) } end def unlink(id) process_link { |old_data| old_data - [@related_data_item.relation.related_entities(id)] } end private def process_link old_data = @item.send(@related_data_item.getter).to_a @item.send(@related_data_item.setter, yield(old_data)) @item.save end end end
Version data entries
6 entries across 6 versions & 1 rubygems