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
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