class Promiscuous::BlackHole::Message
Attributes
raw_message[R]
Public Class Methods
new(raw_message)
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 5 def initialize(raw_message) @raw_message = raw_message end
Public Instance Methods
attributes()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 9 def attributes safe_raw_attributes .reject { |_, v| EmbeddedMessage.embedded_value?(v) } .merge( 'id' => raw_message['id'], '_v' => raw_message['version'], '_type' => raw_message['types'].first ) end
base_type()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 34 def base_type raw_message['types'].last end
embedded_messages()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 19 def embedded_messages @embedded_messages ||= safe_raw_attributes .values .select { |v| EmbeddedMessage.embedded_value?(v) } .flat_map { |v| EmbeddedMessage.from_embedded_value(v, self)} end
id()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 42 def id raw_message['id'] end
operation()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 38 def operation raw_message['operation'] end
table_name()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 26 def table_name base_type .gsub(/::Base$/, '') .gsub(/::/, '_') .underscore .pluralize end
to_s()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 46 def to_s "<Message:#{ raw_message }>" end
Private Instance Methods
safe_raw_attributes()
click to toggle source
# File lib/promiscuous_black_hole/message.rb, line 52 def safe_raw_attributes @safe_raw_attributes ||= begin attrs = {} (raw_message['attributes'] || {}).each do |k, v| next if v == [] || v.nil? attrs[k] = v.is_a?(Array) ? v.reject(&:nil?) : v end attrs end end