module Skalka::Resource
Public Instance Methods
build(item, included)
click to toggle source
# File lib/skalka/resource.rb, line 7 def build(item, included) return {} if item.empty? Functions[:deep_merge][ Functions[:pick_main_attributes][item], attributes: self[:relationships].with(included)[item] ] end
fetch_relationships(item)
click to toggle source
# File lib/skalka/resource.rb, line 16 def fetch_relationships(item) item.fetch(:relationships, {}) end
Private Instance Methods
build_resource(included)
click to toggle source
# File lib/skalka/resource.rb, line 20 def build_resource(included) self[:find_resource].with(included) >> NestedResource[:build] end
fetch_link(included)
click to toggle source
# File lib/skalka/resource.rb, line 24 def fetch_link(included) Functions[:fetch_data] >> Functions[:map_or_pass][build_resource(included)] end
find_resource(relationship, included)
click to toggle source
# File lib/skalka/resource.rb, line 28 def find_resource(relationship, included) included.find do |included_resource| included_resource.values_at(:id, :type) == relationship.values_at(:id, :type) end end
relationships(item, included)
click to toggle source
# File lib/skalka/resource.rb, line 34 def relationships(item, included) ( self[:fetch_relationships] >> Functions[:map_values, fetch_link(included)] )[item] end