class Materialist::Materializer::Internals::LinkMapping
Attributes
mapping[R]
Public Class Methods
new(key:, mapping: [], enable_caching: false)
click to toggle source
# File lib/materialist/materializer/internals/link_mapping.rb, line 5 def initialize(key:, mapping: [], enable_caching: false) @key = key @mapping = mapping @enable_caching = enable_caching end
Public Instance Methods
linked_resource(resource)
click to toggle source
# File lib/materialist/materializer/internals/link_mapping.rb, line 18 def linked_resource(resource) return unless href = resource.dig(:_links, @key, :href) resource.client.get(href, options: { enable_caching: @enable_caching, response_class: HateoasResource }) rescue Routemaster::Errors::ResourceNotFound nil end
map(resource)
click to toggle source
# File lib/materialist/materializer/internals/link_mapping.rb, line 13 def map(resource) return unless linked_resource = linked_resource(resource) mapping.map{ |m| m.map(linked_resource) }.compact.reduce(&:merge) end