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