Sha256: 8e095ecab23845cee74eed5644b604c9a19eaa421e2779587ecdb9f808650071

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

require 'urbanairship'

module Nuge
  module Clients
    class Urbanairship
      attr_reader :options
      attr_writer :expander

      def initialize(options = {})
        @expander = options[:expander]
        @options  = options
      end

      def pusher
        @pusher ||= ::Urbanairship.tap do |serv|
          serv.application_key    = options[:application_key]
          serv.application_secret = options[:application_secret]
          serv.master_secret      = options[:master_secret]
        end
      end

      def register(id, options = {})
        pusher.register_device(id, options)
      end

      def unregister(id, options = {})
        pusher.unregister_device(id, options)
      end

      def push(ids, message)
        formatter = message.delete(:formatter) || Nuge::Formatters::Aps

        pusher.push(formatter.call(ids, message))
      end
    end
  end

  module Formatters
    module Aps
      def self.call(ids, message)
        { device_tokens: ids, aps: message }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nuge-0.1.0 lib/nuge/clients/urbanairship.rb