Class: Firepush::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/firepush/message.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(msg) ⇒ Message

Returns a new instance of Message.

Parameters:

  • msg (Hash)

Raises:

  • (ArgumentError)

See Also:

  • Firepush::Message.lib/firepush/{recipient/*,message_types}lib/firepush/{recipient/*,message_types}.rb


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/firepush/message.rb', line 16

def initialize(msg)
  msg = msg.dup

  args = {}
  Recipient::TYPES.each do |type|
    args[type] = msg.delete(type) if msg.key?(type)
  end
  @recipient = Recipient::Builder.build(args)

  args.clear
  MessageType::TYPES.each do |type|
    args[type] = msg.delete(type) if msg.key?(type)
  end
  @message_types = MessageTypes.new(args)

  @extra = msg
end

Instance Attribute Details

#extraObject (readonly)

TODO: handle extra data in better way.



11
12
13
# File 'lib/firepush/message.rb', line 11

def extra
  @extra
end

#message_typesFirepush::MessageTypes (readonly)



8
9
10
# File 'lib/firepush/message.rb', line 8

def message_types
  @message_types
end

#recipientFirepush::Recipient::Base (readonly)



7
8
9
# File 'lib/firepush/message.rb', line 7

def recipient
  @recipient
end

Instance Method Details

#to_jsonString

Returns:

  • (String)


35
36
37
# File 'lib/firepush/message.rb', line 35

def to_json
  ::JSON.generate(message: message)
end

#valid?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/firepush/message.rb', line 40

def valid?
  recipient.valid? && message_types.valid?
end