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/{message_type,recipient}/*lib/firepush/{message_type,recipient}/*.rb


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

def initialize(msg)
  msg = msg.dup

  args = {}
  args[:topic] = msg.delete(:topic) if msg.key?(:topic)
  args[:token] = msg.delete(:token) if msg.key?(:token)
  @recipient = Recipient::Builder.build(args)

  args.clear
  args[:notification] = msg.delete(:notification) if msg.key?(:notification)
  args[:data] = msg.delete(:data) if msg.key?(:data)
  @message_type = MessageType::Builder.build(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_typeFirepush::MessageType::Base (readonly)



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

def message_type
  @message_type
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)


33
34
35
# File 'lib/firepush/message.rb', line 33

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

#valid?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/firepush/message.rb', line 38

def valid?
  recipient.valid? && message_type.valid?
end