Google Cloud Messaging for Android
Ruby
Latest commit c470054 Mar 20, 2014 @hifrank Merge pull request #4 from elanperach/master
fixed typo which caused the push to crash the app
Permalink
Failed to load latest commit information.
lib upgrade to 0.0.5 Sep 14, 2012
spec fixes #3, convert data payload to string value. Aug 10, 2012
.gitignore add .travis.yml Jul 21, 2012
.rvmrc init commit. Jul 19, 2012
.travis.yml add .travis.yml Jul 21, 2012
CHANGELOG.md upgrade to 0.0.5 Sep 14, 2012
Gemfile init commit. Jul 19, 2012
Gemfile.lock init commit. Jul 19, 2012
LICENSE add CHANGELOG, LICENSE Jul 24, 2012
README.md fixed msg bug Mar 4, 2013
Rakefile add gem/rspec tasks. Jul 21, 2012
higcm.gemspec upgrade to 0.0.5 Sep 14, 2012

README.md

GCM Ruby wrapper Build Status

This is Ruby libray for push message to device via Google Cloud Messaging for Android

Features

parallel gcm messaging

use Typhoeus as http client so it is able to send gcm messges in parallel way.

handler

parse gcm response with GCM::Handler according to GCM Response format, into serveral kinds of events, say, success, fails, retry, unregister, you can only handle events you care about.

Usage

send a message

sender = HiGCM::Sender.new(your_api_key)
registration_ids = [1, 2, 3]
opts = {
  :collapse_key => "test"
  :data         => { :message => "hello GCM" }
}
response = sender.send(registration_ids, opts)
...

send a message with handler

# prepare handler for retry and unregister event
handler = HiGCM::Handler.new
handler.do_retry do | retry_ids, opts, response |
  retry_ids.each do | reg_id, retry_after |
    # do retry things
  end
end
#prepare for renew registration_ids 
handler.do_renew_token do | renew_ids, response |
  renew_ids.each do | reg_id, new_reg_id |
    # do renew stuff
  end
end

sender  = HiGCM::Sender.new(your_api_key)
registration_ids = [1, 2, 3]
opts = {
  :collapse_key => "test"
  :data         => { :mesg => "hello GCM" }
}
sender.send(registration_ids, opts, handler)

send a muti-messages in parallel way

sender  = HiGCM::Sender.new(your_api_key)

# queue your messages first 
something.each do | registration_id, name |
  # prepare handler for retry and unregister event
  handler = HiGCM::Handler.new
  handler.do_retry do | retry_ids, opts, response |
    retry_ids.each do | reg_id, retry_after |
      # do retry things
    end
  end
  #prepare for renew registration_ids 
  handler.do_renew_token do | renew_ids, response |
    renew_ids.each do | reg_id, new_reg_id |
      # do renew stuff
    end
  end

  opts = {
    :collapse_key => "test"
    :data         => { :mesg => "hello #{name}" }
  }
  sender.send_async(registration_id, opts, handler)
end
# now fire
sender.send_async_run