class Hat::Sideloading::SideloadMap
Attributes
identity_map[RW]
root_key[RW]
Public Class Methods
new(json, root_key)
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 9 def initialize(json, root_key) @root_key = root_key @identity_map = IdentityMap.new build_from_json(json) end
Public Instance Methods
get(type, id)
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 17 def get(type, id) identity_map.get(type.singularize, id) end
get_all(type, ids)
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 21 def get_all(type, ids) ids.map { |id| get(type, id)}.compact end
inspect()
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 25 def inspect identity_map.inspect end
Private Instance Methods
build_from_json(json)
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 38 def build_from_json(json) json[root_key].each do |json_item| put(root_key, json_item['id'], json_item) end if json['linked'] json['linked'].each do |type_key, sideloaded_json_item| sideloaded_json_item.each { |json_item| put(type_key, json_item['id'], json_item) } end end end
put(type, id, object)
click to toggle source
# File lib/hat/sideloading/sideload_map.rb, line 34 def put(type, id, object) identity_map.put(type.singularize, id, object) end