Sha256: 85a0673cffba4f54f36768e38abcc6726c34bf3d6f327d56abc1f19d16535a89

Contents?: true

Size: 596 Bytes

Versions: 5

Compression:

Stored size: 596 Bytes

Contents

module DeviceCloud
  class PushNotification
    attr_reader :messages

    def initialize(raw_messages)
      @messages = DeviceCloud::PushNotification::Message.parse_raw_messages(raw_messages)
    end

    def handle_each!
      messages.each do |message|
        next unless message.valid? && message.valid_parsed_file_data?

        klass = class_type(message.topic_type)
        
        klass.handle!(message.parsed_file_data)
      end
    end
  private
    def class_type(class_name)
      DeviceCloud.constantize "DeviceCloud::PushNotification::#{class_name.capitalize}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
device_cloud-0.0.5 lib/device_cloud/push_notification.rb
device_cloud-0.0.4 lib/device_cloud/push_notification.rb
device_cloud-0.0.3 lib/device_cloud/push_notification.rb
device_cloud-0.0.2 lib/device_cloud/push_notification.rb
device_cloud-0.0.1 lib/device_cloud/push_notification.rb