Sha256: 7c2f56d0ab5989c5827983c9126eb8b28290189bc5d64a63b070fa2788caefad
Contents?: true
Size: 940 Bytes
Versions: 5
Compression:
Stored size: 940 Bytes
Contents
class Association < Field def json_action(action, value, record) store = record.get_raw(name) case action when 'set' clear(store, record) process_json_items(value, record, store, :associate) when 'add' process_json_items(value, record, store, :associate) when 'remove' process_json_items(value, record, store, :unassociate) when 'clear' clear(store, record) end record.changed!(name) end def from_json(value, record) store = record.get_raw(name) clear(store, record) process_json_items(value, record, store, :associate) record.get(name) end private def process_json_items(items, record, store, method) items = [items] unless items.is_a?(Array) items.each do |raw_item| item = process_json_item(raw_item, store, record) next if item.nil? send(method, item, store, record) end end end
Version data entries
5 entries across 5 versions & 1 rubygems