notifiable-apns-grocer 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e19c4bbf5e02e47e354324afec0cc1be9f232c6
4
- data.tar.gz: 18fdffde5e1c152d027b5ab11f6c5d8319426e38
3
+ metadata.gz: d368d8bb3ad9b2822c74da4245e566bf91fedcc5
4
+ data.tar.gz: d5d275c9d66a826376d7998229d748ee18bf4768
5
5
  SHA512:
6
- metadata.gz: d723b14a9077b39abba03a1635f9dac35a6596701c56ec12301fc35e920c8f6c986aefed38d5576aa0b0dbafd6ea0e8bdbe280342a8ba942ce7f772da64f3dd0
7
- data.tar.gz: fcf5884e59438232282cdeda0eb6ec37524942561bf5d229f9edf996bb932f81afd41230463a43b61cc0e5e8d0f4765ce659389c391c22c78c05c5423678d183
6
+ metadata.gz: 00f85e6cc2358514bbf0c5f41fbc9ea69eb374e792f1cebdb3b35aa9269be898d442880abce8bab35b0cd7e55286dc42bf07851ed0f2097fc3fff5d7092db020
7
+ data.tar.gz: 691aa2a24d3dfeda18db6c418e7fb554dfcaa6afc782784c02a13a06699ef35f1b94b0c3faf53abff06c6c3e2cb3a687964541461244d30cba7dc9cdc04e6128
@@ -15,12 +15,12 @@ module Notifiable
15
15
  end
16
16
 
17
17
  protected
18
- def enqueue(notification, device_token)
18
+ def enqueue(notification, device_token, params)
19
19
 
20
20
  grocer_notification = ::Grocer::Notification.new(
21
21
  device_token: device_token.token,
22
22
  alert: notification.message,
23
- custom: notification.params
23
+ custom: params
24
24
  )
25
25
 
26
26
  grocer_pusher.push(grocer_notification) unless Notifiable.delivery_method == :test
@@ -1,7 +1,7 @@
1
1
  module Notifiable
2
2
  module Apns
3
3
  module Grocer
4
- VERSION = "0.4.0"
4
+ VERSION = "0.5.0"
5
5
  end
6
6
  end
7
7
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "notifiable-rails", ">=0.6.0"
21
+ spec.add_dependency "notifiable-rails", ">=0.12.0"
22
22
  spec.add_dependency "grocer"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
data/spec/grocer_spec.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Notifiable::Apns::Grocer::Stream do
4
-
4
+
5
+ let(:a) { Notifiable::App.create }
5
6
  let(:g) { Notifiable::Apns::Grocer::Stream.new }
6
- let(:n) { Notifiable::Notification.create(:message => "Test message") }
7
- let(:d) { Notifiable::DeviceToken.create(:token => "ABC123", :provider => :apns) }
7
+ let(:n) { Notifiable::Notification.create(:message => "Test message", :app => a) }
8
+ let(:d) { Notifiable::DeviceToken.create(:token => "ABC123", :provider => :apns, :app => a) }
8
9
  let(:u) { User.new(d) }
9
10
 
10
11
  it "sends a single grocer notification" do
@@ -14,13 +15,14 @@ describe Notifiable::Apns::Grocer::Stream do
14
15
  Timeout.timeout(2) {
15
16
  notification = @grocer.notifications.pop
16
17
  notification.alert.should eql "Test message"
18
+ notification.custom[:notification_id].should == n.id
17
19
  }
18
20
  end
19
21
 
20
22
  it "sends a single grocer notification in a batch" do
21
23
 
22
- Notifiable.batch do |b|
23
- b.add(n, u)
24
+ Notifiable.batch(a) do |b|
25
+ b.add_notifiable(n, u)
24
26
  end
25
27
  Notifiable::NotificationStatus.count.should == 1
26
28
  Notifiable::NotificationStatus.first.status.should == 0
@@ -28,20 +30,22 @@ describe Notifiable::Apns::Grocer::Stream do
28
30
  Timeout.timeout(2) {
29
31
  notification = @grocer.notifications.pop
30
32
  notification.alert.should eql "Test message"
33
+ notification.custom[:notification_id].should == n.id
31
34
  }
32
35
  end
33
36
 
34
37
  it "supports custom properties" do
35
38
  n.params = {:flag => true}
36
39
 
37
- Notifiable.batch do |b|
38
- b.add(n, u)
40
+ Notifiable.batch(a) do |b|
41
+ b.add_notifiable(n, u)
39
42
  end
40
43
  Notifiable::NotificationStatus.count.should == 1
41
44
  Notifiable::NotificationStatus.first.status.should == 0
42
45
 
43
46
  Timeout.timeout(2) {
44
47
  notification = @grocer.notifications.pop
48
+ notification.custom[:notification_id].should == n.id
45
49
  notification.custom[:flag].should == true
46
50
  }
47
51
  end
data/spec/spec_helper.rb CHANGED
@@ -19,6 +19,8 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
19
19
  db_path = 'spec/support/db/test.sqlite3'
20
20
  DatabaseCleaner.strategy = :truncation
21
21
 
22
+ Rails.logger = Logger.new(STDOUT)
23
+
22
24
  RSpec.configure do |config|
23
25
  config.mock_with :rspec
24
26
  config.order = "random"
@@ -0,0 +1,10 @@
1
+ class CreateNotifiableApps < ActiveRecord::Migration
2
+ def change
3
+ create_table :notifiable_apps do |t|
4
+ t.string :name
5
+ t.text :configuration
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -3,12 +3,18 @@ class CreateNotifiableDeviceTokens < ActiveRecord::Migration
3
3
  def change
4
4
  create_table :notifiable_device_tokens do |t|
5
5
  t.string :token
6
- t.string :user_id
7
6
  t.string :provider
7
+ t.string :device_id
8
8
  t.boolean :is_valid, :default => true
9
+ t.integer :user_id
10
+ t.references :app
9
11
 
10
12
  t.timestamps
11
13
  end
14
+
15
+ add_index :notifiable_device_tokens, :device_id, :unique => true
16
+ add_index :notifiable_device_tokens, :token, :unique => true
17
+ add_index :notifiable_device_tokens, :user_id
12
18
  end
13
19
 
14
20
  end
@@ -2,12 +2,23 @@ class CreateNotifiableNotifications < ActiveRecord::Migration
2
2
 
3
3
  def change
4
4
  create_table :notifiable_notifications do |t|
5
- t.text :title
6
5
  t.text :message
7
6
  t.text :params
8
- t.integer :badge
9
- t.text :sound
10
- t.datetime :expiry
7
+ t.references :app
8
+
9
+ #stats
10
+ t.integer :sent_count, :default => 0
11
+ t.integer :gateway_accepted_count, :default => 0
12
+ t.integer :opened_count, :default => 0
13
+
14
+ # APNS - Optional
15
+ #t.integer :badge
16
+ #t.text :sound
17
+ #t.datetime :expiry
18
+
19
+ # MPNS - Optional
20
+ #t.text :title
21
+
11
22
  t.timestamps
12
23
  end
13
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notifiable-apns-grocer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kamil Kocemba
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-13 00:00:00.000000000 Z
12
+ date: 2014-03-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: notifiable-rails
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '>='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.6.0
20
+ version: 0.12.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '>='
26
26
  - !ruby/object:Gem::Version
27
- version: 0.6.0
27
+ version: 0.12.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: grocer
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +174,7 @@ files:
174
174
  - notifiable-apns-grocer.gemspec
175
175
  - spec/grocer_spec.rb
176
176
  - spec/spec_helper.rb
177
+ - spec/support/db/migrate/20131228225138_create_notifiable_apps.rb
177
178
  - spec/support/db/migrate/20131228225139_create_notifiable_device_tokens.rb
178
179
  - spec/support/db/migrate/20131228225140_create_notifiable_notifications.rb
179
180
  - spec/support/db/migrate/20131229104039_create_notifiable_notification_statuses.rb
@@ -204,6 +205,7 @@ summary: Plugin to use Grocer for APNS with Notifiable-Rails
204
205
  test_files:
205
206
  - spec/grocer_spec.rb
206
207
  - spec/spec_helper.rb
208
+ - spec/support/db/migrate/20131228225138_create_notifiable_apps.rb
207
209
  - spec/support/db/migrate/20131228225139_create_notifiable_device_tokens.rb
208
210
  - spec/support/db/migrate/20131228225140_create_notifiable_notifications.rb
209
211
  - spec/support/db/migrate/20131229104039_create_notifiable_notification_statuses.rb