module Shogun::Denormalizer
Constants
- LINKED_KEY
- LINKS_KEY
- META_KEY
Public Class Methods
new(object:, fields:)
click to toggle source
# File lib/shogun/denormalizer.rb, line 7 def initialize(object:, fields:) @object = object @fields = fields @meta = object.meta @links = object.links @linked = object.linked end
Public Instance Methods
as_document()
click to toggle source
# File lib/shogun/denormalizer.rb, line 15 def as_document { namespace => document, meta_key => @meta, links_key => @links, linked_key => @linked } end
Private Instance Methods
document()
click to toggle source
# File lib/shogun/denormalizer.rb, line 24 def document if @fields.one? @object.public_send(@fields.first) else @fields.inject({}) do |hash, field| hash.merge(field => @object.public_send(mapping[field])) end end end
linked_key()
click to toggle source
# File lib/shogun/denormalizer.rb, line 46 def linked_key self.class.const_get("LINKED_KEY") end
links_key()
click to toggle source
# File lib/shogun/denormalizer.rb, line 42 def links_key self.class.const_get("LINKS_KEY") end
mapping()
click to toggle source
# File lib/shogun/denormalizer.rb, line 50 def mapping self.class.const_get("MAPPING") end
meta_key()
click to toggle source
# File lib/shogun/denormalizer.rb, line 38 def meta_key self.class.const_get("META_KEY") end
namespace()
click to toggle source
# File lib/shogun/denormalizer.rb, line 34 def namespace self.class.const_get("NAMESPACE") end