class AndroidServices::GoogleCloudMessaging::CloudMessage

Attributes

options[RW]

Public Class Methods

new(options) click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 7
def initialize(options)
  validating options
  [ :registration_ids,
    :dry_run,
    :collapse_key,
    :data,
    :delay_while_idle,
    :time_to_live].each do |option|
      instance_variable_set("@#{option}", options[option])
    end
  end

Public Instance Methods

send!() click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 19
def send!
  build_request
  post_request!
end

Private Instance Methods

build_request() click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 32
def build_request
  instance_variable_set("@request", AndroidServices::GoogleCloudMessaging::Request.new(payload))
  self.class.instance_eval do
    define_method(:request) { @request }
  end
end
instance_variables_hash() click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 53
def instance_variables_hash
  Hash[instance_variables.map { |name| [name.to_s.gsub("@",""), instance_variable_get(name)] } ]
end
payload() click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 39
def payload
  params = instance_variables_hash.select {|k,v| ["registration_ids", "dry_run", "collapse_key", "data", "delay_while_idle", "time_to_live"].include?(k) && !v.nil?}
  params.to_json
end
post_request!() click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 44
def post_request!
  response_object = @request.send :post!
  instance_variable_set("@response", response_object)
  self.class.instance_eval do
    define_method(:response) { @request }
  end
  @response
end
validating(options) click to toggle source
# File lib/android_services/cloud_message/cloud_message.rb, line 27
def validating options
  raise AndroidServices::Exceptions::RegistrationIdBlank.new("Atleast one registration id required to send message.") if options[:registration_ids].nil?
  raise AndroidServices::Exceptions::RegistrationIdLimit.new("You cannot define more than 1000 registration ids.") if options[:registration_ids].size > 1000
end