c2dm_on_rails 0.1.8 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/Gemfile.lock +21 -0
- data/README.textile +12 -51
- data/Rakefile +22 -8
- data/VERSION +1 -0
- data/c2dm_on_rails.gemspec +50 -19
- data/lib/c2dm_on_rails/app/models/c2dm/notification.rb +2 -0
- data/lib/c2dm_on_rails/c2dm_on_rails.rb +22 -50
- data/lib/c2dm_on_rails/libs/connection.rb +3 -1
- data/lib/generators/c2dm_migrations_generator.rb +32 -0
- data/{generators/templates/c2dm_migrations/001_create_c2dm_devices.rb → lib/generators/templates/c2dm_migrations/create_c2dm_devices.rb} +0 -0
- data/{generators/templates/c2dm_migrations/002_create_c2dm_notifications.rb → lib/generators/templates/c2dm_migrations/create_c2dm_notifications.rb} +0 -0
- metadata +64 -89
- data/generators/c2dm_migrations_generator.rb +0 -31
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
configatron (2.7.2)
|
5
|
+
yamler (>= 0.1.0)
|
6
|
+
gdata (1.1.2)
|
7
|
+
git (1.2.5)
|
8
|
+
jeweler (1.6.4)
|
9
|
+
bundler (~> 1.0)
|
10
|
+
git (>= 1.2.5)
|
11
|
+
rake
|
12
|
+
rake (0.8.7)
|
13
|
+
yamler (0.1.0)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
configatron
|
20
|
+
gdata
|
21
|
+
jeweler
|
data/README.textile
CHANGED
@@ -1,16 +1,6 @@
|
|
1
|
-
|
1
|
+
h1. C2dm on Rails (Android Cloud to Device Messaging on Rails)
|
2
2
|
|
3
|
-
|
4
|
-
bug fixes, so if somebody would make this work with Ruby 1.9/Rails 3, please
|
5
|
-
fork it and throw me a pull request, so I'll make a new branch and release a
|
6
|
-
new version to rubygems.
|
7
|
-
|
8
|
-
h1. C2dm on Rails (Android push notifications on Rails)
|
9
|
-
|
10
|
-
C2dm on Rails is a Ruby on Rails gem that allows you to easily add Apple Push Notification (iPhone)
|
11
|
-
support to your Rails application.
|
12
|
-
|
13
|
-
C2dm on Rails is a Ruby on Rails gem that allows you to easily add Android push notification
|
3
|
+
C2dm on Rails is a Ruby on Rails gem that allows you to easily add Android Cloud to Device Messaging (push notification)
|
14
4
|
(Android 2.2> devices) to your Rails application.
|
15
5
|
|
16
6
|
h2. Acknowledgements:
|
@@ -36,32 +26,14 @@ Sign up here:
|
|
36
26
|
|
37
27
|
h2. Installing:
|
38
28
|
|
39
|
-
|
40
|
-
|
41
|
-
<pre><code>
|
42
|
-
$ sudo gem install c2dm_on_rails
|
43
|
-
</code></pre>
|
44
|
-
|
45
|
-
h3. Rails Gem Management:
|
46
|
-
|
47
|
-
If you like to use the built in Rails gem management:
|
48
|
-
|
29
|
+
Add the following line to your Gemfile:
|
49
30
|
<pre><code>
|
50
|
-
|
31
|
+
gem 'c2dm_on_rails'
|
51
32
|
</code></pre>
|
52
33
|
|
53
34
|
h2. Setup and Configuration:
|
54
35
|
|
55
|
-
|
56
|
-
start to use it:
|
57
|
-
|
58
|
-
Add the following require, wherever it makes sense to you:
|
59
|
-
|
60
|
-
<pre><code>
|
61
|
-
require 'c2dm_on_rails'
|
62
|
-
</code></pre>
|
63
|
-
|
64
|
-
You also need to add the following to your Rakefile so you can use the
|
36
|
+
You need to add the following to your Rakefile so you can use the
|
65
37
|
Rake tasks that ship with C2dm on Rails:
|
66
38
|
|
67
39
|
<pre><code>
|
@@ -75,28 +47,17 @@ Rake tasks that ship with C2dm on Rails:
|
|
75
47
|
Now, to create the tables you need for C2dm on Rails, run the following task:
|
76
48
|
|
77
49
|
<pre><code>
|
78
|
-
$
|
50
|
+
$ rails generate c2dm_migrations
|
79
51
|
</code></pre>
|
80
52
|
|
81
53
|
C2dm on Rails uses the Configatron gem, "http://github.com/markbates/configatron/tree/master":http://github.com/markbates/configatron/tree/master,
|
82
|
-
to configure itself. C2dm on Rails
|
83
|
-
|
84
|
-
|
54
|
+
to configure itself. C2dm on Rails uses also the gdata gem for connecting a Google account. The following is an example of an initializer script to
|
55
|
+
be run to configure the gem (you could put it in config/initializers/c2dm_on_rails.rb):
|
85
56
|
<pre><code>
|
86
57
|
configatron.c2dm.api_url = 'https://android.apis.google.com/c2dm/send'
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
config file for Google Connect (config/c2dm.yml) should look like this:
|
91
|
-
|
92
|
-
<pre><code>
|
93
|
-
development:
|
94
|
-
username: your_user_name
|
95
|
-
password: password_for_the_account
|
96
|
-
app_name: your_applications_name
|
97
|
-
|
98
|
-
production:
|
99
|
-
... etc
|
58
|
+
configatron.c2dm.username = 'your_user_name'
|
59
|
+
configatron.c2dm.password = 'password_for_the account'
|
60
|
+
configatron.c2dm.app_name = 'your_application_name'
|
100
61
|
</code></pre>
|
101
62
|
|
102
63
|
That's it, now you're ready to start creating notifications.
|
@@ -106,7 +67,7 @@ h3. Upgrade Notes:
|
|
106
67
|
If you are upgrading to a new version of C2dm on Rails you should always run:
|
107
68
|
|
108
69
|
<pre><code>
|
109
|
-
$
|
70
|
+
$ rails generate c2dm_migrations
|
110
71
|
</code></pre>
|
111
72
|
|
112
73
|
That way you ensure you have the latest version of the database tables needed.
|
data/Rakefile
CHANGED
@@ -1,12 +1,26 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
2
11
|
require 'rake'
|
3
|
-
require 'echoe'
|
4
12
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
gem.name = "c2dm_on_rails"
|
16
|
+
gem.summary = "Android Cloud to Device Messaging (push notifications) on Rails"
|
17
|
+
|
18
|
+
gem.description = %q{C2DM on Rails is a Ruby on Rails gem that allows you to
|
19
|
+
easily add Android Cloud to Device Messaging support to your Rails application.
|
20
|
+
}
|
21
|
+
|
22
|
+
gem.email = "julius.debruijn@digia.com"
|
23
|
+
gem.homepage = "http://github.com/pimeys/c2dm_on_rails"
|
24
|
+
gem.authors = ["Julius de Bruijn"]
|
12
25
|
end
|
26
|
+
task :default => :spec
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.0
|
data/c2dm_on_rails.gemspec
CHANGED
@@ -1,35 +1,66 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{c2dm_on_rails}
|
5
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
6
9
|
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">=
|
8
|
-
s.authors = [
|
9
|
-
s.date = %q{2011-08-
|
10
|
-
s.description = %q{
|
11
|
-
|
12
|
-
|
13
|
-
s.
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Julius de Bruijn"]
|
12
|
+
s.date = %q{2011-08-26}
|
13
|
+
s.description = %q{C2DM on Rails is a Ruby on Rails gem that allows you to
|
14
|
+
easily add Android Cloud to Device Messaging support to your Rails application.
|
15
|
+
}
|
16
|
+
s.email = %q{julius.bruijn@sponsorpay.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.textile"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
"CHANGELOG",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE",
|
26
|
+
"Manifest",
|
27
|
+
"README.textile",
|
28
|
+
"Rakefile",
|
29
|
+
"VERSION",
|
30
|
+
"c2dm_on_rails.gemspec",
|
31
|
+
"lib/c2dm_on_rails.rb",
|
32
|
+
"lib/c2dm_on_rails/app/models/c2dm/base.rb",
|
33
|
+
"lib/c2dm_on_rails/app/models/c2dm/device.rb",
|
34
|
+
"lib/c2dm_on_rails/app/models/c2dm/notification.rb",
|
35
|
+
"lib/c2dm_on_rails/c2dm_on_rails.rb",
|
36
|
+
"lib/c2dm_on_rails/libs/connection.rb",
|
37
|
+
"lib/c2dm_on_rails/tasks/c2dm.rake",
|
38
|
+
"lib/c2dm_on_rails_tasks.rb",
|
39
|
+
"lib/generators/c2dm_migrations_generator.rb",
|
40
|
+
"lib/generators/templates/c2dm_migrations/create_c2dm_devices.rb",
|
41
|
+
"lib/generators/templates/c2dm_migrations/create_c2dm_notifications.rb"
|
42
|
+
]
|
14
43
|
s.homepage = %q{http://github.com/pimeys/c2dm_on_rails}
|
15
|
-
s.
|
16
|
-
s.
|
17
|
-
s.
|
18
|
-
s.rubygems_version = %q{1.8.6}
|
19
|
-
s.summary = %q{Android push notifications on Rails.}
|
44
|
+
s.require_paths = ["lib"]
|
45
|
+
s.rubygems_version = %q{1.5.2}
|
46
|
+
s.summary = %q{Android Cloud to Device Messaging (push notifications) on Rails}
|
20
47
|
|
21
48
|
if s.respond_to? :specification_version then
|
22
49
|
s.specification_version = 3
|
23
50
|
|
24
51
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
25
|
-
s.
|
26
|
-
s.
|
52
|
+
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
|
53
|
+
s.add_runtime_dependency(%q<configatron>, [">= 0"])
|
54
|
+
s.add_runtime_dependency(%q<gdata>, [">= 0"])
|
27
55
|
else
|
28
|
-
s.add_dependency(%q<
|
29
|
-
s.add_dependency(%q<configatron>, [">=
|
56
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
57
|
+
s.add_dependency(%q<configatron>, [">= 0"])
|
58
|
+
s.add_dependency(%q<gdata>, [">= 0"])
|
30
59
|
end
|
31
60
|
else
|
32
|
-
s.add_dependency(%q<
|
33
|
-
s.add_dependency(%q<configatron>, [">=
|
61
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
62
|
+
s.add_dependency(%q<configatron>, [">= 0"])
|
63
|
+
s.add_dependency(%q<gdata>, [">= 0"])
|
34
64
|
end
|
35
65
|
end
|
66
|
+
|
@@ -40,7 +40,9 @@ class C2dm::Notification < C2dm::Base
|
|
40
40
|
unless notifications.nil? || notifications.empty?
|
41
41
|
C2dm::Connection.open do |token|
|
42
42
|
notifications.each do |noty|
|
43
|
+
puts "sending notification #{noty.id} to device #{noty.device.registration_id}"
|
43
44
|
response = C2dm::Connection.send_notification(noty, token)
|
45
|
+
puts "response: #{response[:code]}; #{response.inspect}"
|
44
46
|
if response[:code] == 200
|
45
47
|
case response[:message]
|
46
48
|
when "Error=QuotaExceeded"
|
@@ -2,130 +2,102 @@ require 'configatron'
|
|
2
2
|
require 'gdata'
|
3
3
|
require 'uri'
|
4
4
|
|
5
|
-
rails_root = File.join(FileUtils.pwd, 'rails_root')
|
6
|
-
if defined?(RAILS_ROOT)
|
7
|
-
rails_root = RAILS_ROOT
|
8
|
-
end
|
9
|
-
|
10
|
-
rails_env = 'development'
|
11
|
-
if defined?(RAILS_ENV)
|
12
|
-
rails_env = RAILS_ENV
|
13
|
-
end
|
14
|
-
|
15
|
-
begin
|
16
|
-
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/c2dm.yml")[rails_env]
|
17
|
-
rescue => ex
|
18
|
-
raise C2dm::Errors.ConfigFileNotFound.new(ex.message)
|
19
|
-
end
|
20
|
-
|
21
|
-
begin
|
22
|
-
configatron.c2dm.api_url = URI.parse('https://android.apis.google.com/c2dm/send')
|
23
|
-
configatron.c2dm.username = APP_CONFIG['username']
|
24
|
-
configatron.c2dm.password = APP_CONFIG['password']
|
25
|
-
configatron.c2dm.app_name = APP_CONFIG['app_name']
|
26
|
-
rescue => ex
|
27
|
-
raise C2dm::Errors.ConfigFileMissingAttributes.new(ex.message)
|
28
|
-
end
|
29
|
-
|
30
5
|
module C2dm # :nodoc:
|
31
|
-
|
32
6
|
module Errors # :nodoc:
|
33
|
-
|
34
7
|
# The payload of the message is too big, the limit is currently 1024
|
35
8
|
# bytes. Reduce the size of the message.
|
36
9
|
class MessageTooBig < StandardError
|
37
|
-
|
38
10
|
def initialize(message) # :nodoc:
|
39
11
|
super("The maximum size allowed for a notification payload is 1024 bytes: '#{message}'")
|
40
12
|
end
|
41
|
-
|
42
13
|
end
|
43
14
|
|
44
15
|
# Too many messages sent by the sender. Retry after a while.
|
45
16
|
class QuotaExceeded < StandardError
|
46
|
-
|
47
17
|
def initialize(message) # :nodoc:
|
48
18
|
super("Too many messages sent by the sender: '#{message}'")
|
49
19
|
end
|
50
|
-
|
51
20
|
end
|
52
21
|
|
53
22
|
# Too many messages sent by the sender to a specific device. Retry after a
|
54
23
|
# while.
|
55
24
|
class DeviceQuotaExceeded < StandardError
|
56
|
-
|
57
25
|
def initialize(message) # :nodoc:
|
58
26
|
super("Too many messages sent by the sender to a specific device: '#{message}'")
|
59
27
|
end
|
60
|
-
|
61
28
|
end
|
62
|
-
|
29
|
+
|
63
30
|
# Missing or bad registration_id. Sender should stop sending messages to
|
64
31
|
# this device.
|
65
32
|
class InvalidRegistration < StandardError
|
66
|
-
|
67
33
|
def initialize(message) # :nodoc:
|
68
34
|
super("Missing or bad registration_id: '#{message}'")
|
69
35
|
end
|
70
|
-
|
71
36
|
end
|
72
|
-
|
37
|
+
|
73
38
|
# The registration_id is no longer valid, for example user has uninstalled
|
74
39
|
# the application or turned off notifications. Sender should stop sending
|
75
40
|
# messages to this device.
|
76
41
|
class NotRegistered < StandardError
|
77
|
-
|
78
42
|
def initialize(message) # :nodoc:
|
79
43
|
super("The registration_id is no longer valid: '#{message}'")
|
80
44
|
end
|
81
|
-
|
82
45
|
end
|
83
46
|
|
84
47
|
# Collapse key is required. Include collapse key in the request.
|
85
48
|
class MissingCollapseKey < StandardError
|
86
|
-
|
87
49
|
def initialize(message) # :nodoc:
|
88
50
|
super("Collapse key is required: '#{message}'")
|
89
51
|
end
|
90
|
-
|
91
52
|
end
|
92
53
|
|
93
54
|
# ClientLogin AUTH_TOKEN is invalid. Check the config
|
94
55
|
class InvalidAuthToken < StandardError
|
95
|
-
|
96
56
|
def initialize(message)
|
97
57
|
super("Invalid auth token: '#{message}'")
|
98
58
|
end
|
99
|
-
|
100
59
|
end
|
101
60
|
|
102
61
|
class ConfigFileNotFound < StandardError
|
103
|
-
|
104
62
|
def initialize(message)
|
105
63
|
super("The config file c2dm.yml not found from config/ directory or contains errors: '#{message}'")
|
106
64
|
end
|
107
|
-
|
108
65
|
end
|
109
66
|
|
110
67
|
class ConfigFileMissingAttributes < StandardError
|
111
|
-
|
112
68
|
def initialize(message)
|
113
69
|
super("Config file doesn't contain username, password or app_name: '#{message}'")
|
114
70
|
end
|
115
|
-
|
116
71
|
end
|
117
72
|
|
118
73
|
class ServiceUnavailable < StandardError
|
119
|
-
|
120
74
|
def initialize(message)
|
121
75
|
super("Service is currently unavailable. Try again later: '#{message}'")
|
122
76
|
end
|
123
|
-
|
124
77
|
end
|
125
78
|
end # Errors
|
126
|
-
|
127
79
|
end # APN
|
128
80
|
|
81
|
+
# rails_env = 'development'
|
82
|
+
# if defined?(RAILS_ENV)
|
83
|
+
# rails_env = RAILS_ENV
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# begin
|
87
|
+
# APP_CONFIG = YAML.load_file(File.join(::Rails.root.to_s, "config", "c2dm.yml"))[rails_env]
|
88
|
+
# rescue => ex
|
89
|
+
# raise C2dm::Errors::ConfigFileNotFound.new(ex.message)
|
90
|
+
# end
|
91
|
+
#
|
92
|
+
# begin
|
93
|
+
# configatron.c2dm.api_url = URI.parse('https://android.apis.google.com/c2dm/send')
|
94
|
+
# configatron.c2dm.username = APP_CONFIG['username']
|
95
|
+
# configatron.c2dm.password = APP_CONFIG['password']
|
96
|
+
# configatron.c2dm.app_name = APP_CONFIG['app_name']
|
97
|
+
# rescue => ex
|
98
|
+
# raise C2dm::Errors::ConfigFileMissingAttributes.new(ex.message)
|
99
|
+
# end
|
100
|
+
|
129
101
|
Dir.glob(File.join(File.dirname(__FILE__), 'app', 'models', 'c2dm', '*.rb')).sort.each do |f|
|
130
102
|
require f
|
131
103
|
end
|
@@ -15,9 +15,11 @@ module C2dm
|
|
15
15
|
|
16
16
|
data = data + "&delay_while_idle" if noty.delay_while_idle
|
17
17
|
|
18
|
-
|
18
|
+
url_string = configatron.c2dm.api_url
|
19
|
+
url=URI.parse url_string
|
19
20
|
http = Net::HTTP.new(url.host, url.port)
|
20
21
|
http.use_ssl = true
|
22
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
21
23
|
|
22
24
|
resp, dat = http.post(url.path, data, headers)
|
23
25
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rails/generators/active_record'
|
2
|
+
# Generates the migrations necessary for C2dm on Rails.
|
3
|
+
# This should be run upon install and upgrade of the
|
4
|
+
# C2dm on Rails gem.
|
5
|
+
#
|
6
|
+
# $ ruby script/generate c2dm_migrations
|
7
|
+
class C2dmMigrationsGenerator < Rails::Generators::Base
|
8
|
+
include Rails::Generators::Migration
|
9
|
+
extend ActiveRecord::Generators::Migration
|
10
|
+
|
11
|
+
# Set the current directory as base for the inherited generators.
|
12
|
+
def self.base_root
|
13
|
+
File.dirname(__FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
source_root File.expand_path('../templates/c2dm_migrations', __FILE__)
|
17
|
+
|
18
|
+
def create_migrations
|
19
|
+
templates = {
|
20
|
+
'create_c2dm_devices.rb' => 'db/migrate/create_c2dm_devices.rb',
|
21
|
+
'create_c2dm_notifications.rb' => 'db/migrate/create_c2dm_notifications.rb'
|
22
|
+
}
|
23
|
+
|
24
|
+
templates.each_pair do |name, path|
|
25
|
+
begin
|
26
|
+
migration_template(name, path)
|
27
|
+
rescue => err
|
28
|
+
puts "WARNING: #{err.message}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end # C2dmMigrationsGenerator
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,82 +1,70 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: c2dm_on_rails
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 8
|
10
|
-
version: 0.1.8
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Julius de Bruijn
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-08-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: jeweler
|
16
|
+
requirement: &18227280 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
version: 1.1.1
|
34
|
-
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *18227280
|
25
|
+
- !ruby/object:Gem::Dependency
|
37
26
|
name: configatron
|
27
|
+
requirement: &18226540 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
38
34
|
prerelease: false
|
39
|
-
|
35
|
+
version_requirements: *18226540
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: gdata
|
38
|
+
requirement: &18274340 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
version: 2.6.3
|
50
|
-
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
description: Android push notifications on Rails.
|
53
|
-
email: julius.debruijn@digia.com
|
54
|
-
executables: []
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *18274340
|
47
|
+
description: ! 'C2DM on Rails is a Ruby on Rails gem that allows you to
|
55
48
|
|
56
|
-
|
49
|
+
easily add Android Cloud to Device Messaging support to your Rails application.
|
57
50
|
|
58
|
-
|
59
|
-
|
51
|
+
'
|
52
|
+
email: julius.bruijn@sponsorpay.com
|
53
|
+
executables: []
|
54
|
+
extensions: []
|
55
|
+
extra_rdoc_files:
|
60
56
|
- LICENSE
|
61
57
|
- README.textile
|
62
|
-
|
63
|
-
- lib/c2dm_on_rails/app/models/c2dm/base.rb
|
64
|
-
- lib/c2dm_on_rails/app/models/c2dm/device.rb
|
65
|
-
- lib/c2dm_on_rails/app/models/c2dm/notification.rb
|
66
|
-
- lib/c2dm_on_rails/c2dm_on_rails.rb
|
67
|
-
- lib/c2dm_on_rails/libs/connection.rb
|
68
|
-
- lib/c2dm_on_rails/tasks/c2dm.rake
|
69
|
-
- lib/c2dm_on_rails_tasks.rb
|
70
|
-
files:
|
58
|
+
files:
|
71
59
|
- CHANGELOG
|
60
|
+
- Gemfile
|
61
|
+
- Gemfile.lock
|
72
62
|
- LICENSE
|
73
63
|
- Manifest
|
74
64
|
- README.textile
|
75
65
|
- Rakefile
|
66
|
+
- VERSION
|
76
67
|
- c2dm_on_rails.gemspec
|
77
|
-
- generators/c2dm_migrations_generator.rb
|
78
|
-
- generators/templates/c2dm_migrations/001_create_c2dm_devices.rb
|
79
|
-
- generators/templates/c2dm_migrations/002_create_c2dm_notifications.rb
|
80
68
|
- lib/c2dm_on_rails.rb
|
81
69
|
- lib/c2dm_on_rails/app/models/c2dm/base.rb
|
82
70
|
- lib/c2dm_on_rails/app/models/c2dm/device.rb
|
@@ -85,44 +73,31 @@ files:
|
|
85
73
|
- lib/c2dm_on_rails/libs/connection.rb
|
86
74
|
- lib/c2dm_on_rails/tasks/c2dm.rake
|
87
75
|
- lib/c2dm_on_rails_tasks.rb
|
76
|
+
- lib/generators/c2dm_migrations_generator.rb
|
77
|
+
- lib/generators/templates/c2dm_migrations/create_c2dm_devices.rb
|
78
|
+
- lib/generators/templates/c2dm_migrations/create_c2dm_notifications.rb
|
88
79
|
homepage: http://github.com/pimeys/c2dm_on_rails
|
89
80
|
licenses: []
|
90
|
-
|
91
81
|
post_install_message:
|
92
|
-
rdoc_options:
|
93
|
-
|
94
|
-
- --inline-source
|
95
|
-
- --title
|
96
|
-
- C2dm_on_rails
|
97
|
-
- --main
|
98
|
-
- README.textile
|
99
|
-
require_paths:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
100
84
|
- lib
|
101
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
86
|
none: false
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
|
107
|
-
|
108
|
-
- 0
|
109
|
-
version: "0"
|
110
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
92
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
segments:
|
117
|
-
- 1
|
118
|
-
- 2
|
119
|
-
version: "1.2"
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
120
97
|
requirements: []
|
121
|
-
|
122
|
-
|
123
|
-
rubygems_version: 1.8.6
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 1.8.11
|
124
100
|
signing_key:
|
125
101
|
specification_version: 3
|
126
|
-
summary: Android push notifications on Rails
|
102
|
+
summary: Android Cloud to Device Messaging (push notifications) on Rails
|
127
103
|
test_files: []
|
128
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'rails_generator'
|
2
|
-
# Generates the migrations necessary for C2dm on Rails.
|
3
|
-
# This should be run upon install and upgrade of the
|
4
|
-
# C2dm on Rails gem.
|
5
|
-
#
|
6
|
-
# $ ruby script/generate c2dm_migrations
|
7
|
-
class C2dmMigrationsGenerator < Rails::Generator::Base
|
8
|
-
|
9
|
-
def manifest # :nodoc:
|
10
|
-
record do |m|
|
11
|
-
timestamp = Time.now.utc.strftime("%Y%m%d%H%M%S")
|
12
|
-
db_migrate_path = File.join('db', 'migrate')
|
13
|
-
|
14
|
-
m.directory(db_migrate_path)
|
15
|
-
|
16
|
-
Dir.glob(File.join(File.dirname(__FILE__), 'templates', 'c2dm_migrations', '*.rb')).sort.each_with_index do |f, i|
|
17
|
-
f = File.basename(f)
|
18
|
-
f.match(/\d+\_(.+)/)
|
19
|
-
timestamp = timestamp.succ
|
20
|
-
if Dir.glob(File.join(db_migrate_path, "*_#{$1}")).empty?
|
21
|
-
m.file(File.join('c2dm_migrations', f),
|
22
|
-
File.join(db_migrate_path, "#{timestamp}_#{$1}"),
|
23
|
-
{:collision => :skip})
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end # record
|
28
|
-
|
29
|
-
end # manifest
|
30
|
-
|
31
|
-
end # C2dmMigrationsGenerator
|