class DeviceCloud::PushNotification::Message
Constants
- KNOWN_TOPICS
Attributes
file_data[RW]
group[RW]
operation[RW]
replay[RW]
timestamp[RW]
topic[RW]
Public Class Methods
new(attributes = {})
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 16 def initialize(attributes = {}) attributes.each do |name, value| if name == 'FileData' @file_data = value else send("#{name}=", value) end end DeviceCloud.logger.info "DeviceCloud::PushNotification::Message Invalid (no FileData) - #{topic}" unless valid? end
parse_raw_messages(raw_message_data)
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 7 def self.parse_raw_messages(raw_message_data) if raw_message_data.is_a? Array messages = raw_message_data.map {|message| new(message) } else messages = [new(raw_message_data)] end messages end
Public Instance Methods
no_content?()
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 36 def no_content? parsed_file_data.no_content? end
parsed_file_data()
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 31 def parsed_file_data return false unless valid? @parsed_file_data ||= FileData.new file_data end
topic_type()
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 27 def topic_type topic_matches.first end
valid?()
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 40 def valid? !!file_data end
Private Instance Methods
topic_matches()
click to toggle source
# File lib/device_cloud/push_notification/message.rb, line 44 def topic_matches topic.split('/') & KNOWN_TOPICS end