module Shogun::Denormalizer

Constants

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