Sha256: 854f0fc5b097feec2a7422af617f79cb9ec0b484d8f2f6966ddb54e0aaaa6b92

Contents?: true

Size: 640 Bytes

Versions: 4

Compression:

Stored size: 640 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?

        klass = class_type(message.topic_type)

        message.no_content? ? klass.handle_no_content!(message.parsed_file_data) : klass.handle!(message.parsed_file_data)
      end
    end
  private
    def class_type(class_name)
      DeviceCloud.constantize "DeviceCloud::PushNotification::#{class_name.capitalize}Notification"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
device_cloud-0.2.3 lib/device_cloud/push_notification.rb
device_cloud-0.2.2 lib/device_cloud/push_notification.rb
device_cloud-0.2.1 lib/device_cloud/push_notification.rb
device_cloud-0.2.0 lib/device_cloud/push_notification.rb