class Promiscuous::BlackHole::EmbeddedMessage

Attributes

embedding_message[R]

Public Class Methods

embedded_value?(value) click to toggle source
# File lib/promiscuous_black_hole/embedded_message.rb, line 3
def self.embedded_value?(value)
  value.kind_of?(Hash) && (
    value['types'] == ['Promiscuous::EmbeddedDocs'] ||                 # format for embeds_many embeddings
    ['types', 'id', 'attributes'].all? { |attr| attr.in?(value.keys) } # format for embeds_one_embeddings
  )
end
from_embedded_value(value, parent_message) click to toggle source
# File lib/promiscuous_black_hole/embedded_message.rb, line 10
def self.from_embedded_value(value, parent_message)
  if value['types'] == ['Promiscuous::EmbeddedDocs']
    value['attributes'].map { |attr| new(attr, parent_message) } # format for embeds_many embeddings
  else
    [ new(value, parent_message) ]                               # format for embeds_one embeddings
  end
end
new(raw_message, embedding_message) click to toggle source
# File lib/promiscuous_black_hole/embedded_message.rb, line 18
def initialize(raw_message, embedding_message)
  @raw_message       = raw_message
  @embedding_message = embedding_message
end

Public Instance Methods

attributes() click to toggle source
Calls superclass method
# File lib/promiscuous_black_hole/embedded_message.rb, line 23
def attributes
  super.merge(
    'embedded_in_id'    => embedding_message.id,
    'embedded_in_table' => embedding_message.table_name
  )
end
operation() click to toggle source
# File lib/promiscuous_black_hole/embedded_message.rb, line 30
def operation
  'create'
end