crusade 0.8.0 → 0.8.1
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 +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/lib/crusade/configuration.rb +1 -0
- data/lib/crusade/notification.rb +12 -0
- data/lib/crusade/notification_builder.rb +44 -0
- data/lib/crusade/version.rb +1 -1
- data/test/support/crusade/apns.rb +4 -0
- data/test/unit/configuration_test.rb +0 -5
- data/test/unit/notification_builder_test.rb +76 -0
- data/test/unit/notification_test.rb +52 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fecf82740f5e248c140475ca842ec747f1452de
|
4
|
+
data.tar.gz: 800d6e400a446abeb6fba9a92d21338027c8bffb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bb0290d7c104ff7fa1d15587fa8c5ba4293876f397ac8252046615ae89ea0ff837495276ed18134142c49bd4b69de0c14f94e2917a68d1300ca5558c4356997
|
7
|
+
data.tar.gz: efc9b2061001c5f1958cbf446d082ce694910ac1853e7f09b26c1271dab46960376d97f274e427f67443ca77677261fd12314f8a9620a511e0073c302852c46d
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
module Crusade
|
2
|
+
class Notification
|
3
|
+
attr_accessor :title, :body, :action, :url_args, :device_token
|
4
|
+
|
5
|
+
def initialize(attrs = {} )
|
6
|
+
self.title = attrs.fetch(:title) { nil }
|
7
|
+
self.body = attrs.fetch(:body) { nil }
|
8
|
+
self.action = attrs.fetch(:action) { nil }
|
9
|
+
self.url_args = attrs.fetch(:url_args) { [] }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'crusade/notification'
|
2
|
+
|
3
|
+
module Crusade
|
4
|
+
class NotificationBuilder
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
self.notification = Crusade::Notification.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def build
|
11
|
+
notification
|
12
|
+
end
|
13
|
+
|
14
|
+
def with_title(title)
|
15
|
+
notification.title = title
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def with_body(body)
|
20
|
+
notification.body = body
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
def with_action(action)
|
25
|
+
notification.action = action
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
29
|
+
def with_url_args(url_args)
|
30
|
+
notification.url_args = url_args
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
def with_device_token(device_token)
|
35
|
+
notification.device_token = device_token
|
36
|
+
self
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
attr_accessor :notification
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/crusade/version.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.expand_path '../../test_helper.rb', __FILE__
|
2
|
+
|
3
|
+
require 'crusade/notification_builder'
|
4
|
+
|
5
|
+
describe Crusade::NotificationBuilder do
|
6
|
+
let(:described_class) { Crusade::NotificationBuilder }
|
7
|
+
subject { described_class.new }
|
8
|
+
|
9
|
+
describe 'build' do
|
10
|
+
it' creates a notification' do
|
11
|
+
notification = subject.build
|
12
|
+
|
13
|
+
notification.is_a?(Crusade::Notification).must_be_true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe 'with_title' do
|
18
|
+
it 'returns the builder' do
|
19
|
+
subject.with_title('test').must_be_same_as subject
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets the title of the notification' do
|
23
|
+
notif = subject.with_title('test').build
|
24
|
+
|
25
|
+
notif.title.must_equal 'test'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'with_body' do
|
30
|
+
it 'returns the builder' do
|
31
|
+
subject.with_body('test').must_be_same_as subject
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'sets the body of the notification' do
|
35
|
+
notif = subject.with_body('test').build
|
36
|
+
|
37
|
+
notif.body.must_equal 'test'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe 'with_action' do
|
42
|
+
it 'returns the builder' do
|
43
|
+
subject.with_action('test').must_be_same_as subject
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'sets the action of the notification' do
|
47
|
+
notif = subject.with_action('test').build
|
48
|
+
|
49
|
+
notif.action.must_equal 'test'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'with_url_args' do
|
54
|
+
it 'returns the builder' do
|
55
|
+
subject.with_url_args('test').must_be_same_as subject
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'sets the url_args of the notification' do
|
59
|
+
notif = subject.with_url_args(['test']).build
|
60
|
+
|
61
|
+
notif.url_args.must_equal ['test']
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe 'with_device_token' do
|
66
|
+
it 'returns the builder' do
|
67
|
+
subject.with_device_token('test').must_be_same_as subject
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'sets the url_args of the notification' do
|
71
|
+
notif = subject.with_device_token('test').build
|
72
|
+
|
73
|
+
notif.device_token.must_equal 'test'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.expand_path '../../test_helper.rb', __FILE__
|
2
|
+
|
3
|
+
require 'crusade/notification'
|
4
|
+
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
describe Crusade::Notification do
|
8
|
+
let(:described_class) { Crusade::Notification }
|
9
|
+
|
10
|
+
let(:attrs) do
|
11
|
+
{
|
12
|
+
title: 'the title',
|
13
|
+
body: 'the body',
|
14
|
+
action: 'submit',
|
15
|
+
url_args: ['a'],
|
16
|
+
device_token: '1234a'
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'initialize' do
|
21
|
+
subject { described_class.new }
|
22
|
+
|
23
|
+
it 'initializes the title' do
|
24
|
+
subject.title.must_be_nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'initializes the body' do
|
28
|
+
subject.body.must_be_nil
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'initializes the action' do
|
32
|
+
subject.action.must_be_nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'initializes the url_args' do
|
36
|
+
subject.url_args.must_equal []
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'initializes the device_token' do
|
40
|
+
subject.device_token.must_be_nil
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'with a hash' do
|
44
|
+
subject { described_class.new attrs }
|
45
|
+
|
46
|
+
it { subject.title.must_equal 'the title' }
|
47
|
+
it { subject.body.must_equal 'the body' }
|
48
|
+
it { subject.action.must_equal 'submit' }
|
49
|
+
it { subject.url_args.must_equal ['a'] }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crusade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Rouchy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,13 +112,18 @@ files:
|
|
112
112
|
- lib/crusade.rb
|
113
113
|
- lib/crusade/configuration.rb
|
114
114
|
- lib/crusade/logger.rb
|
115
|
+
- lib/crusade/notification.rb
|
116
|
+
- lib/crusade/notification_builder.rb
|
115
117
|
- lib/crusade/null_logger.rb
|
116
118
|
- lib/crusade/version.rb
|
117
119
|
- test/fixtures/config.yml
|
120
|
+
- test/support/crusade/apns.rb
|
118
121
|
- test/support/fake_logger.rb
|
119
122
|
- test/test_helper.rb
|
120
123
|
- test/unit/configuration_test.rb
|
121
124
|
- test/unit/logger_test.rb
|
125
|
+
- test/unit/notification_builder_test.rb
|
126
|
+
- test/unit/notification_test.rb
|
122
127
|
- test/unit/null_logger_test.rb
|
123
128
|
homepage: ''
|
124
129
|
licenses:
|
@@ -146,8 +151,11 @@ specification_version: 4
|
|
146
151
|
summary: push some notification through APNS
|
147
152
|
test_files:
|
148
153
|
- test/fixtures/config.yml
|
154
|
+
- test/support/crusade/apns.rb
|
149
155
|
- test/support/fake_logger.rb
|
150
156
|
- test/test_helper.rb
|
151
157
|
- test/unit/configuration_test.rb
|
152
158
|
- test/unit/logger_test.rb
|
159
|
+
- test/unit/notification_builder_test.rb
|
160
|
+
- test/unit/notification_test.rb
|
153
161
|
- test/unit/null_logger_test.rb
|