houston 2.3.0 → 2.4.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.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +27 -30
  3. data/README.md +1 -0
  4. data/coverage/assets/0.7.1/application.css +1110 -0
  5. data/coverage/assets/0.7.1/application.js +626 -0
  6. data/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  7. data/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  8. data/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  9. data/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  10. data/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  11. data/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  12. data/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  13. data/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  14. data/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  15. data/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  16. data/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  17. data/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  18. data/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  19. data/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  20. data/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  21. data/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  22. data/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  23. data/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  24. data/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  25. data/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  26. data/coverage/assets/{0.10.2 → 0.7.1}/favicon_green.png +0 -0
  27. data/coverage/assets/{0.10.2 → 0.7.1}/favicon_red.png +0 -0
  28. data/coverage/assets/{0.10.2 → 0.7.1}/favicon_yellow.png +0 -0
  29. data/coverage/assets/{0.10.2 → 0.7.1}/loading.gif +0 -0
  30. data/coverage/assets/{0.10.2 → 0.7.1}/magnify.png +0 -0
  31. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-icons_222222_256x240.png +0 -0
  40. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  41. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-icons_454545_256x240.png +0 -0
  42. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-icons_888888_256x240.png +0 -0
  43. data/coverage/assets/{0.10.2 → 0.7.1}/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  44. data/coverage/assets/{0.10.2 → 0.8.0}/application.css +0 -0
  45. data/coverage/assets/{0.10.2 → 0.8.0}/application.js +931 -1079
  46. data/coverage/assets/{0.10.2 → 0.8.0}/colorbox/border.png +0 -0
  47. data/coverage/assets/{0.10.2 → 0.8.0}/colorbox/controls.png +0 -0
  48. data/coverage/assets/{0.10.2 → 0.8.0}/colorbox/loading.gif +0 -0
  49. data/coverage/assets/{0.10.2 → 0.8.0}/colorbox/loading_background.png +0 -0
  50. data/coverage/assets/0.8.0/favicon_green.png +0 -0
  51. data/coverage/assets/0.8.0/favicon_red.png +0 -0
  52. data/coverage/assets/0.8.0/favicon_yellow.png +0 -0
  53. data/coverage/assets/0.8.0/loading.gif +0 -0
  54. data/coverage/assets/0.8.0/magnify.png +0 -0
  55. data/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  56. data/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  57. data/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  58. data/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  59. data/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  60. data/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  61. data/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  62. data/coverage/assets/0.8.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  63. data/coverage/assets/0.8.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  64. data/coverage/assets/0.8.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  65. data/coverage/assets/0.8.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  66. data/coverage/assets/0.8.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  67. data/coverage/assets/0.8.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  68. data/coverage/index.html +187 -334
  69. data/houston-2.2.2.gem +0 -0
  70. data/houston-2.2.3.gem +0 -0
  71. data/lib/houston/notification.rb +3 -1
  72. data/lib/houston/version.rb +1 -1
  73. data/spec/notification_spec.rb +17 -4
  74. metadata +69 -27
Binary file
Binary file
@@ -30,7 +30,7 @@ module Houston
30
30
  MAXIMUM_PAYLOAD_SIZE = 2048
31
31
 
32
32
  attr_accessor :token, :alert, :badge, :sound, :category, :content_available, :mutable_content,
33
- :custom_data, :id, :expiry, :priority, :url_args
33
+ :custom_data, :id, :expiry, :priority, :url_args, :thread_id
34
34
  attr_reader :sent_at
35
35
  attr_writer :apns_error_code
36
36
 
@@ -49,6 +49,7 @@ module Houston
49
49
  @content_available = options.delete(:content_available)
50
50
  @mutable_content = options.delete(:mutable_content)
51
51
  @url_args = options.delete(:url_args)
52
+ @thread_id = options.delete(:thread_id)
52
53
 
53
54
  @custom_data = options
54
55
 
@@ -67,6 +68,7 @@ module Houston
67
68
  json['aps']['content-available'] = 1 if @content_available
68
69
  json['aps']['mutable-content'] = 1 if @mutable_content
69
70
  json['aps']['url-args'] = @url_args if @url_args
71
+ json['aps']['thread-id'] = @thread_id if @thread_id
70
72
 
71
73
  json
72
74
  end
@@ -1,3 +1,3 @@
1
1
  module Houston
2
- VERSION = '2.3.0'
2
+ VERSION = '2.4.0'
3
3
  end
@@ -14,7 +14,8 @@ describe Houston::Notification do
14
14
  content_available: true,
15
15
  key1: 1,
16
16
  key2: 'abc',
17
- url_args: %w[boarding A998]
17
+ url_args: %w[boarding A998],
18
+ thread_id: 'notify-team-ios'
18
19
  }
19
20
  }
20
21
 
@@ -75,6 +76,11 @@ describe Houston::Notification do
75
76
  it { should == %w[boarding A998] }
76
77
  end
77
78
 
79
+ describe '#thread_id' do
80
+ subject { super().thread_id }
81
+ it { should == 'notify-team-ios' }
82
+ end
83
+
78
84
  context 'using :device instead of :token' do
79
85
  subject do
80
86
  notification_options[:device] = notification_options[:token]
@@ -97,7 +103,8 @@ describe Houston::Notification do
97
103
  'sound' => 'sosumi.aiff',
98
104
  'category' => 'INVITE_CATEGORY',
99
105
  'content-available' => 1,
100
- 'url-args' => %w[boarding A998]
106
+ 'url-args' => %w[boarding A998],
107
+ 'thread-id' => 'notify-team-ios'
101
108
  },
102
109
  'key1' => 1,
103
110
  'key2' => 'abc')
@@ -147,6 +154,12 @@ describe Houston::Notification do
147
154
  )
148
155
  end
149
156
 
157
+ it 'should create a dictionary only with thread-id' do
158
+ expect(Houston::Notification.new(thread_id: 'notify-ios-team').payload).to eq(
159
+ 'aps' => { 'thread-id' => 'notify-ios-team' }
160
+ )
161
+ end
162
+
150
163
  it 'should allow custom data inside aps key' do
151
164
  notification_options = { :badge => 567, 'aps' => { 'loc-key' => 'my-key' } }
152
165
  expect(Houston::Notification.new(notification_options).payload).to eq(
@@ -187,7 +200,7 @@ describe Houston::Notification do
187
200
 
188
201
  it 'should create a message with correct frame length' do
189
202
  _1, length, _2 = subject.message.unpack('cNa*')
190
- expect(length).to eq(242)
203
+ expect(length).to eq(272)
191
204
  end
192
205
 
193
206
  def parse_items(items_stream)
@@ -214,7 +227,7 @@ describe Houston::Notification do
214
227
  it 'should include an item #2 with the payload as JSON' do
215
228
  _1, _2, items_stream = subject.message.unpack('cNa*')
216
229
  items = parse_items(items_stream)
217
- expect(items).to include([2, 186, '{"key1":1,"key2":"abc","aps":{"alert":"Houston, we have a problem.","badge":2701,"sound":"sosumi.aiff","category":"INVITE_CATEGORY","content-available":1,"url-args":["boarding","A998"]}}'])
230
+ expect(items).to include([2, 216, '{"key1":1,"key2":"abc","aps":{"alert":"Houston, we have a problem.","badge":2701,"sound":"sosumi.aiff","category":"INVITE_CATEGORY","content-available":1,"url-args":["boarding","A998"],"thread-id":"notify-team-ios"}}'])
218
231
  end
219
232
 
220
233
  it 'should include an item #3 with the identifier' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: houston
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattt Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-08 00:00:00.000000000 Z
11
+ date: 2018-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -93,31 +93,73 @@ files:
93
93
  - "./LICENSE"
94
94
  - "./README.md"
95
95
  - "./Rakefile"
96
- - "./coverage/assets/0.10.2/application.css"
97
- - "./coverage/assets/0.10.2/application.js"
98
- - "./coverage/assets/0.10.2/colorbox/border.png"
99
- - "./coverage/assets/0.10.2/colorbox/controls.png"
100
- - "./coverage/assets/0.10.2/colorbox/loading.gif"
101
- - "./coverage/assets/0.10.2/colorbox/loading_background.png"
102
- - "./coverage/assets/0.10.2/favicon_green.png"
103
- - "./coverage/assets/0.10.2/favicon_red.png"
104
- - "./coverage/assets/0.10.2/favicon_yellow.png"
105
- - "./coverage/assets/0.10.2/loading.gif"
106
- - "./coverage/assets/0.10.2/magnify.png"
107
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png"
108
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png"
109
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png"
110
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png"
111
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png"
112
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png"
113
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png"
114
- - "./coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
115
- - "./coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png"
116
- - "./coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png"
117
- - "./coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png"
118
- - "./coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png"
119
- - "./coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png"
96
+ - "./coverage/assets/0.7.1/application.css"
97
+ - "./coverage/assets/0.7.1/application.js"
98
+ - "./coverage/assets/0.7.1/fancybox/blank.gif"
99
+ - "./coverage/assets/0.7.1/fancybox/fancy_close.png"
100
+ - "./coverage/assets/0.7.1/fancybox/fancy_loading.png"
101
+ - "./coverage/assets/0.7.1/fancybox/fancy_nav_left.png"
102
+ - "./coverage/assets/0.7.1/fancybox/fancy_nav_right.png"
103
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_e.png"
104
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_n.png"
105
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png"
106
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png"
107
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_s.png"
108
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_se.png"
109
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png"
110
+ - "./coverage/assets/0.7.1/fancybox/fancy_shadow_w.png"
111
+ - "./coverage/assets/0.7.1/fancybox/fancy_title_left.png"
112
+ - "./coverage/assets/0.7.1/fancybox/fancy_title_main.png"
113
+ - "./coverage/assets/0.7.1/fancybox/fancy_title_over.png"
114
+ - "./coverage/assets/0.7.1/fancybox/fancy_title_right.png"
115
+ - "./coverage/assets/0.7.1/fancybox/fancybox-x.png"
116
+ - "./coverage/assets/0.7.1/fancybox/fancybox-y.png"
117
+ - "./coverage/assets/0.7.1/fancybox/fancybox.png"
118
+ - "./coverage/assets/0.7.1/favicon_green.png"
119
+ - "./coverage/assets/0.7.1/favicon_red.png"
120
+ - "./coverage/assets/0.7.1/favicon_yellow.png"
121
+ - "./coverage/assets/0.7.1/loading.gif"
122
+ - "./coverage/assets/0.7.1/magnify.png"
123
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png"
124
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png"
125
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png"
126
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png"
127
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png"
128
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png"
129
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png"
130
+ - "./coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
131
+ - "./coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png"
132
+ - "./coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png"
133
+ - "./coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png"
134
+ - "./coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png"
135
+ - "./coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png"
136
+ - "./coverage/assets/0.8.0/application.css"
137
+ - "./coverage/assets/0.8.0/application.js"
138
+ - "./coverage/assets/0.8.0/colorbox/border.png"
139
+ - "./coverage/assets/0.8.0/colorbox/controls.png"
140
+ - "./coverage/assets/0.8.0/colorbox/loading.gif"
141
+ - "./coverage/assets/0.8.0/colorbox/loading_background.png"
142
+ - "./coverage/assets/0.8.0/favicon_green.png"
143
+ - "./coverage/assets/0.8.0/favicon_red.png"
144
+ - "./coverage/assets/0.8.0/favicon_yellow.png"
145
+ - "./coverage/assets/0.8.0/loading.gif"
146
+ - "./coverage/assets/0.8.0/magnify.png"
147
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png"
148
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png"
149
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png"
150
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png"
151
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png"
152
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png"
153
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png"
154
+ - "./coverage/assets/0.8.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
155
+ - "./coverage/assets/0.8.0/smoothness/images/ui-icons_222222_256x240.png"
156
+ - "./coverage/assets/0.8.0/smoothness/images/ui-icons_2e83ff_256x240.png"
157
+ - "./coverage/assets/0.8.0/smoothness/images/ui-icons_454545_256x240.png"
158
+ - "./coverage/assets/0.8.0/smoothness/images/ui-icons_888888_256x240.png"
159
+ - "./coverage/assets/0.8.0/smoothness/images/ui-icons_cd0a0a_256x240.png"
120
160
  - "./coverage/index.html"
161
+ - "./houston-2.2.2.gem"
162
+ - "./houston-2.2.3.gem"
121
163
  - "./houston.gemspec"
122
164
  - "./lib/houston.rb"
123
165
  - "./lib/houston/client.rb"
@@ -148,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
190
  version: '0'
149
191
  requirements: []
150
192
  rubyforge_project:
151
- rubygems_version: 2.7.6
193
+ rubygems_version: 2.6.14
152
194
  signing_key:
153
195
  specification_version: 4
154
196
  summary: Send Apple Push Notifications