houston 2.2.4 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +22 -22
  3. data/README.md +35 -14
  4. data/bin/apn +2 -2
  5. data/coverage/assets/{0.10.0 → 0.10.2}/application.css +0 -0
  6. data/coverage/assets/{0.10.0 → 0.10.2}/application.js +0 -0
  7. data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/border.png +0 -0
  8. data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/controls.png +0 -0
  9. data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/loading.gif +0 -0
  10. data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/loading_background.png +0 -0
  11. data/coverage/assets/{0.10.0 → 0.10.2}/favicon_green.png +0 -0
  12. data/coverage/assets/{0.10.0 → 0.10.2}/favicon_red.png +0 -0
  13. data/coverage/assets/{0.10.0 → 0.10.2}/favicon_yellow.png +0 -0
  14. data/coverage/assets/{0.10.0 → 0.10.2}/loading.gif +0 -0
  15. data/coverage/assets/{0.10.0 → 0.10.2}/magnify.png +0 -0
  16. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  17. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  18. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  19. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  20. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  21. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  22. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  23. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  24. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_222222_256x240.png +0 -0
  25. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  26. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_454545_256x240.png +0 -0
  27. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_888888_256x240.png +0 -0
  28. data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  29. data/coverage/index.html +163 -128
  30. data/lib/houston/client.rb +2 -2
  31. data/lib/houston/connection.rb +2 -2
  32. data/lib/houston/notification.rb +6 -1
  33. data/lib/houston/version.rb +1 -1
  34. data/spec/notification_spec.rb +13 -5
  35. metadata +27 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 62b98bdcafd6d8dc99ba994deb3ff5b5963bcb12
4
- data.tar.gz: 58e6036255edb8a4e6403c3b8e63eea765e587e3
2
+ SHA256:
3
+ metadata.gz: 6c931143a682bc5e6807738eb60a0dade3b0cde0fdcea9704ef0b85d81d53487
4
+ data.tar.gz: 77de53e8b15c233315716fcbaac6f1d332319bf29139287841178103b76fe143
5
5
  SHA512:
6
- metadata.gz: 82355e5daa760f2fc1d8998d9f5aad92842fd65db661e9fc1f58c6ca32a8da3b492ee303f6a98e0aab487e383ebf31ded16ad65689d4dbad0c228167937c1c76
7
- data.tar.gz: 7592018c066df70f1bd37b65d7fd387fd921975e7a4ec6893e94d6e57d8692cc01386f14c1ace277db5d9251ca3f910daaebf0f50dbb05f72dca1fd17ea8f0ba
6
+ metadata.gz: ddf28b2482d803ec803f92f93c13de8236276b57f36f524686d5164f83fc4bbb0b79aa05a514acf42b83cc536b3ba0cd44074b0929c682466ee980d13895c009
7
+ data.tar.gz: 0b3e091551866c5389ad13a98b8904c529b3cdc59a87acc88d39ecd98c3a5a3cf2e48138a201b130ccebc717527d2fef4726b5528ee062f0e4f8cb0a4cbeb547
@@ -1,38 +1,38 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- houston (2.2.4)
4
+ houston (2.3.0)
5
5
  commander (~> 4.4)
6
6
  json
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- commander (4.4.3)
11
+ commander (4.4.6)
12
12
  highline (~> 1.7.2)
13
- diff-lcs (1.2.5)
14
- docile (1.1.5)
15
- highline (1.7.8)
16
- json (2.0.2)
17
- rake (12.0.0)
18
- rspec (3.5.0)
19
- rspec-core (~> 3.5.0)
20
- rspec-expectations (~> 3.5.0)
21
- rspec-mocks (~> 3.5.0)
22
- rspec-core (3.5.4)
23
- rspec-support (~> 3.5.0)
24
- rspec-expectations (3.5.0)
13
+ diff-lcs (1.3)
14
+ docile (1.3.1)
15
+ highline (1.7.10)
16
+ json (2.1.0)
17
+ rake (12.3.1)
18
+ rspec (3.8.0)
19
+ rspec-core (~> 3.8.0)
20
+ rspec-expectations (~> 3.8.0)
21
+ rspec-mocks (~> 3.8.0)
22
+ rspec-core (3.8.0)
23
+ rspec-support (~> 3.8.0)
24
+ rspec-expectations (3.8.1)
25
25
  diff-lcs (>= 1.2.0, < 2.0)
26
- rspec-support (~> 3.5.0)
27
- rspec-mocks (3.5.0)
26
+ rspec-support (~> 3.8.0)
27
+ rspec-mocks (3.8.0)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.5.0)
30
- rspec-support (3.5.0)
31
- simplecov (0.12.0)
32
- docile (~> 1.1.0)
29
+ rspec-support (~> 3.8.0)
30
+ rspec-support (3.8.0)
31
+ simplecov (0.16.1)
32
+ docile (~> 1.1)
33
33
  json (>= 1.8, < 3)
34
34
  simplecov-html (~> 0.10.0)
35
- simplecov-html (0.10.0)
35
+ simplecov-html (0.10.2)
36
36
 
37
37
  PLATFORMS
38
38
  ruby
@@ -44,4 +44,4 @@ DEPENDENCIES
44
44
  simplecov
45
45
 
46
46
  BUNDLED WITH
47
- 1.13.7
47
+ 1.16.1
data/README.md CHANGED
@@ -26,22 +26,23 @@ require 'houston'
26
26
  # Environment variables are automatically read, or can be overridden by any specified options. You can also
27
27
  # conveniently use `Houston::Client.development` or `Houston::Client.production`.
28
28
  APN = Houston::Client.development
29
- APN.certificate = File.read("/path/to/apple_push_notification.pem")
29
+ APN.certificate = File.read('/path/to/apple_push_notification.pem')
30
30
 
31
31
  # An example of the token sent back when a device registers for notifications
32
- token = "<ce8be627 2e43e855 16033e24 b4c28922 0eeda487 9c477160 b2545e95 b68b5969>"
32
+ token = '<ce8be627 2e43e855 16033e24 b4c28922 0eeda487 9c477160 b2545e95 b68b5969>'
33
33
 
34
34
  # Create a notification that alerts a message to the user, plays a sound, and sets the badge on the app
35
35
  notification = Houston::Notification.new(device: token)
36
- notification.alert = "Hello, World!"
36
+ notification.alert = 'Hello, World!'
37
37
 
38
38
  # Notifications can also change the badge count, have a custom sound, have a category identifier, indicate available Newsstand content, or pass along arbitrary data.
39
39
  notification.badge = 57
40
- notification.sound = "sosumi.aiff"
41
- notification.category = "INVITE_CATEGORY"
40
+ notification.sound = 'sosumi.aiff'
41
+ notification.category = 'INVITE_CATEGORY'
42
42
  notification.content_available = true
43
43
  notification.mutable_content = true
44
- notification.custom_data = { foo: "bar" }
44
+ notification.custom_data = { foo: 'bar' }
45
+ notification.url_args = %w[boarding A998]
45
46
 
46
47
  # And... sent! That's all it takes.
47
48
  APN.push(notification)
@@ -72,10 +73,10 @@ puts "Error: #{notification.error}." if notification.error
72
73
 
73
74
  ### Silent Notifications
74
75
 
75
- To send a silent push notification, set `sound` to an empty string (`""`):
76
+ To send a silent push notification, set `sound` to an empty string (`''`):
76
77
 
77
78
  ```ruby
78
- Houston::Notification.new(sound: "", content_available: true)
79
+ Houston::Notification.new(sound: '', content_available: true)
79
80
  ```
80
81
 
81
82
  ### Mutable Notifications
@@ -91,13 +92,13 @@ Houston::Notification.new(mutable_content: true)
91
92
  If you want to manage your own persistent connection to Apple push services, such as for background workers, here's how to do it:
92
93
 
93
94
  ```ruby
94
- certificate = File.read("/path/to/apple_push_notification.pem")
95
- passphrase = "..."
95
+ certificate = File.read('/path/to/apple_push_notification.pem')
96
+ passphrase = '...'
96
97
  connection = Houston::Connection.new(Houston::APPLE_DEVELOPMENT_GATEWAY_URI, certificate, passphrase)
97
98
  connection.open
98
99
 
99
100
  notification = Houston::Notification.new(device: token)
100
- notification.alert = "Hello, World!"
101
+ notification.alert = 'Hello, World!'
101
102
  connection.write(notification.message)
102
103
 
103
104
  connection.close
@@ -118,9 +119,9 @@ In `lib/tasks/notifications.rake`:
118
119
  ```ruby
119
120
  namespace :notifications do
120
121
  task device_token_feedback: [:environment] do
121
- APN.devices.each do |device_hash|
122
+ APN.unregistered_devices.each do |device_hash|
122
123
  # Format: { token: token, timestamp: timestamp }
123
- device = Device.find_by(token: device_hash['token'])
124
+ device = Device.find_by(token: device_hash[:token])
124
125
  next unless device.present?
125
126
  # Remove device token
126
127
  device.update_attribute(:device_token, nil)
@@ -141,9 +142,11 @@ Houston also comes with the `apn` binary, which provides a convenient way to tes
141
142
 
142
143
  ## Enabling Push Notifications on iOS
143
144
 
144
- ### AppDelegate.m
145
+ ### Objective-C
145
146
 
146
147
  ```objective-c
148
+ // AppDelegate.m
149
+
147
150
  - (void)applicationDidFinishLaunching:(UIApplication *)application {
148
151
  // ...
149
152
 
@@ -165,6 +168,24 @@ didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
165
168
  }
166
169
  ```
167
170
 
171
+ ### Swift
172
+ ```swift
173
+ // AppDelegate.swift
174
+
175
+ func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
176
+ application.registerForRemoteNotifications()
177
+ return true
178
+ }
179
+
180
+ func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
181
+ // Register the device token with a webservice
182
+ }
183
+
184
+ func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
185
+ print("error \(error)")
186
+ }
187
+ ```
188
+
168
189
  ## Converting Your Certificate
169
190
 
170
191
  > These instructions come from the [APN on Rails](https://github.com/PRX/apn_on_rails) project, which is another great option for sending push notifications.
data/bin/apn CHANGED
@@ -43,7 +43,7 @@ command :push do |c|
43
43
  say_error "Missing certificate file option (-c /path/to/certificate.pem)" and abort unless @certificate
44
44
  say_error "Could not find certificate file '#{@certificate}'" and abort unless File.exists?(@certificate)
45
45
 
46
- @passphrase = options.passphrase ? password : ""
46
+ @passphrase = options.passphrase ? password : nil
47
47
 
48
48
  @alert = options.alert
49
49
  @badge = options.badge.nil? ? nil : options.badge.to_i
@@ -138,7 +138,7 @@ command :feedback do |c|
138
138
  say_error "Missing certificate file option (-c /path/to/certificate.pem)" and abort unless @certificate
139
139
  say_error "Could not find certificate file '#{@certificate}'" and abort unless File.exists?(@certificate)
140
140
 
141
- @passphrase = options.passphrase ? password : ""
141
+ @passphrase = options.passphrase ? password : nil
142
142
 
143
143
  client = (@environment == :production) ? Houston::Client.production : Houston::Client.development
144
144
  client.certificate = File.read(@certificate)
@@ -3,37 +3,37 @@
3
3
  <head>
4
4
  <title>Code coverage for Houston</title>
5
5
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
- <script src='./assets/0.10.0/application.js' type='text/javascript'></script>
7
- <link href='./assets/0.10.0/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
- <link rel="shortcut icon" type="image/png" href="./assets/0.10.0/favicon_red.png" />
9
- <link rel="icon" type="image/png" href="./assets/0.10.0/favicon.png" />
6
+ <script src='./assets/0.10.2/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.10.2/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.10.2/favicon_red.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.10.2/favicon.png" />
10
10
  </head>
11
11
 
12
12
  <body>
13
13
  <div id="loading">
14
- <img src="./assets/0.10.0/loading.gif" alt="loading"/>
14
+ <img src="./assets/0.10.2/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2017-01-11T12:32:00+03:00">2017-01-11T12:32:00+03:00</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2018-09-08T11:29:01+03:00">2018-09-08T11:29:01+03:00</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
21
21
  <div class="file_list_container" id="AllFiles">
22
22
  <h2>
23
23
  <span class="group_name">All Files</span>
24
- (<span class="covered_percent"><span class="red">74.85%</span></span>
24
+ (<span class="covered_percent"><span class="red">75.44%</span></span>
25
25
  covered at
26
26
  <span class="covered_strength">
27
27
  <span class="green">
28
- 6.2
28
+ 6.96
29
29
  </span>
30
30
  </span> hits/line)
31
31
  </h2>
32
32
  <a name="AllFiles"></a>
33
33
  <div>
34
34
  <b>5</b> files in total.
35
- <b>167</b> relevant lines.
36
- <span class="green"><b>125</b> lines covered</span> and
35
+ <b>171</b> relevant lines.
36
+ <span class="green"><b>129</b> lines covered</span> and
37
37
  <span class="red"><b>42</b> lines missed </span>
38
38
  </div>
39
39
  <table class="file_list">
@@ -51,7 +51,7 @@
51
51
  <tbody>
52
52
 
53
53
  <tr>
54
- <td class="strong"><a href="#72d7df740003fec9ba7330c9230dc3a1edee4945" class="src_link" title="lib/houston.rb">lib/houston.rb</a></td>
54
+ <td class="strong"><a href="#fe3fdb648409998987089f779b06acf72d5f6cb8" class="src_link" title="lib/houston.rb">lib/houston.rb</a></td>
55
55
  <td class="green strong">100.0 %</td>
56
56
  <td>4</td>
57
57
  <td>4</td>
@@ -61,7 +61,7 @@
61
61
  </tr>
62
62
 
63
63
  <tr>
64
- <td class="strong"><a href="#c4c7250bbb95849a2925fcae422513df8e00e04e" class="src_link" title="lib/houston/client.rb">lib/houston/client.rb</a></td>
64
+ <td class="strong"><a href="#3dd251fe8a9cb7c51d78fc140a13632a62324aa2" class="src_link" title="lib/houston/client.rb">lib/houston/client.rb</a></td>
65
65
  <td class="red strong">68.97 %</td>
66
66
  <td>92</td>
67
67
  <td>58</td>
@@ -71,7 +71,7 @@
71
71
  </tr>
72
72
 
73
73
  <tr>
74
- <td class="strong"><a href="#6ad9dbe47d23364c5492cfc7f56fc9540e1a205f" class="src_link" title="lib/houston/connection.rb">lib/houston/connection.rb</a></td>
74
+ <td class="strong"><a href="#2c394c3e520262a03cc8c405bdb70d7d8d4c5bc6" class="src_link" title="lib/houston/connection.rb">lib/houston/connection.rb</a></td>
75
75
  <td class="red strong">42.5 %</td>
76
76
  <td>65</td>
77
77
  <td>40</td>
@@ -81,17 +81,17 @@
81
81
  </tr>
82
82
 
83
83
  <tr>
84
- <td class="strong"><a href="#77241215823ec249590ac9f1602fb0bded160262" class="src_link" title="lib/houston/notification.rb">lib/houston/notification.rb</a></td>
85
- <td class="green strong">98.41 %</td>
86
- <td>121</td>
87
- <td>63</td>
88
- <td>62</td>
84
+ <td class="strong"><a href="#ba9bba418e382d61a9e6d0ce03566e72e9479a30" class="src_link" title="lib/houston/notification.rb">lib/houston/notification.rb</a></td>
85
+ <td class="green strong">98.51 %</td>
86
+ <td>126</td>
87
+ <td>67</td>
88
+ <td>66</td>
89
89
  <td>1</td>
90
- <td>13.5</td>
90
+ <td>15.0</td>
91
91
  </tr>
92
92
 
93
93
  <tr>
94
- <td class="strong"><a href="#e8b12a361feeb011b347553315d0176790f5020a" class="src_link" title="lib/houston/version.rb">lib/houston/version.rb</a></td>
94
+ <td class="strong"><a href="#8b87415b3bd8a7824eada4b0600da3fd57094386" class="src_link" title="lib/houston/version.rb">lib/houston/version.rb</a></td>
95
95
  <td class="green strong">100.0 %</td>
96
96
  <td>3</td>
97
97
  <td>2</td>
@@ -109,14 +109,14 @@
109
109
  </div>
110
110
 
111
111
  <div id="footer">
112
- Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.12.0
113
- and simplecov-html v0.10.0<br/>
112
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.16.1
113
+ and simplecov-html v0.10.2<br/>
114
114
  using RSpec
115
115
  </div>
116
116
 
117
117
  <div class="source_files">
118
118
 
119
- <div class="source_table" id="72d7df740003fec9ba7330c9230dc3a1edee4945">
119
+ <div class="source_table" id="fe3fdb648409998987089f779b06acf72d5f6cb8">
120
120
  <div class="header">
121
121
  <h3>lib/houston.rb</h3>
122
122
  <h4><span class="green">100.0 %</span> covered</h4>
@@ -157,8 +157,9 @@
157
157
  </ol>
158
158
  </pre>
159
159
  </div>
160
+
160
161
 
161
- <div class="source_table" id="c4c7250bbb95849a2925fcae422513df8e00e04e">
162
+ <div class="source_table" id="3dd251fe8a9cb7c51d78fc140a13632a62324aa2">
162
163
  <div class="header">
163
164
  <h3>lib/houston/client.rb</h3>
164
165
  <h4><span class="red">68.97 %</span> covered</h4>
@@ -487,7 +488,7 @@
487
488
  <li class="missed" data-hits="0" data-linenumber="53">
488
489
 
489
490
 
490
- <code class="ruby"> read_socket, write_socket = IO.select([ssl], [ssl], [ssl], nil)</code>
491
+ <code class="ruby"> read_socket, _write_socket = IO.select([ssl], [ssl], [ssl], nil)</code>
491
492
  </li>
492
493
 
493
494
  <li class="missed" data-hits="0" data-linenumber="54">
@@ -505,7 +506,7 @@
505
506
  <li class="missed" data-hits="0" data-linenumber="56">
506
507
 
507
508
 
508
- <code class="ruby"> command, status, index = error.unpack(&#39;ccN&#39;)</code>
509
+ <code class="ruby"> _command, status, index = error.unpack(&#39;ccN&#39;)</code>
509
510
  </li>
510
511
 
511
512
  <li class="missed" data-hits="0" data-linenumber="57">
@@ -727,8 +728,9 @@
727
728
  </ol>
728
729
  </pre>
729
730
  </div>
731
+
730
732
 
731
- <div class="source_table" id="6ad9dbe47d23364c5492cfc7f56fc9540e1a205f">
733
+ <div class="source_table" id="2c394c3e520262a03cc8c405bdb70d7d8d4c5bc6">
732
734
  <div class="header">
733
735
  <h3>lib/houston/connection.rb</h3>
734
736
  <h4><span class="red">42.5 %</span> covered</h4>
@@ -913,13 +915,13 @@
913
915
  <li class="missed" data-hits="0" data-linenumber="29">
914
916
 
915
917
 
916
- <code class="ruby"> @certificate = certificate</code>
918
+ <code class="ruby"> @certificate = certificate.to_s</code>
917
919
  </li>
918
920
 
919
921
  <li class="missed" data-hits="0" data-linenumber="30">
920
922
 
921
923
 
922
- <code class="ruby"> @passphrase = passphrase</code>
924
+ <code class="ruby"> @passphrase = passphrase.to_s unless passphrase.nil? </code>
923
925
  </li>
924
926
 
925
927
  <li class="never" data-hits="" data-linenumber="31">
@@ -1135,14 +1137,15 @@
1135
1137
  </ol>
1136
1138
  </pre>
1137
1139
  </div>
1140
+
1138
1141
 
1139
- <div class="source_table" id="77241215823ec249590ac9f1602fb0bded160262">
1142
+ <div class="source_table" id="ba9bba418e382d61a9e6d0ce03566e72e9479a30">
1140
1143
  <div class="header">
1141
1144
  <h3>lib/houston/notification.rb</h3>
1142
- <h4><span class="green">98.41 %</span> covered</h4>
1145
+ <h4><span class="green">98.51 %</span> covered</h4>
1143
1146
  <div>
1144
- <b>63</b> relevant lines.
1145
- <span class="green"><b>62</b> lines covered</span> and
1147
+ <b>67</b> relevant lines.
1148
+ <span class="green"><b>66</b> lines covered</span> and
1146
1149
  <span class="red"><b>1</b> lines missed.</span>
1147
1150
  </div>
1148
1151
  </div>
@@ -1345,7 +1348,7 @@
1345
1348
  <li class="never" data-hits="" data-linenumber="33">
1346
1349
 
1347
1350
 
1348
- <code class="ruby"> :custom_data, :id, :expiry, :priority</code>
1351
+ <code class="ruby"> :custom_data, :id, :expiry, :priority, :url_args</code>
1349
1352
  </li>
1350
1353
 
1351
1354
  <li class="covered" data-hits="1" data-linenumber="34">
@@ -1390,487 +1393,517 @@
1390
1393
  <code class="ruby"> def initialize(options = {})</code>
1391
1394
  </li>
1392
1395
 
1393
- <li class="covered" data-hits="39" data-linenumber="41">
1394
- <span class="hits">39</span>
1396
+ <li class="covered" data-hits="40" data-linenumber="41">
1397
+ <span class="hits">40</span>
1395
1398
 
1396
1399
  <code class="ruby"> @token = options.delete(:token) || options.delete(:device)</code>
1397
1400
  </li>
1398
1401
 
1399
- <li class="covered" data-hits="39" data-linenumber="42">
1400
- <span class="hits">39</span>
1402
+ <li class="covered" data-hits="40" data-linenumber="42">
1403
+ <span class="hits">40</span>
1401
1404
 
1402
1405
  <code class="ruby"> @alert = options.delete(:alert)</code>
1403
1406
  </li>
1404
1407
 
1405
- <li class="covered" data-hits="39" data-linenumber="43">
1406
- <span class="hits">39</span>
1408
+ <li class="covered" data-hits="40" data-linenumber="43">
1409
+ <span class="hits">40</span>
1407
1410
 
1408
1411
  <code class="ruby"> @badge = options.delete(:badge)</code>
1409
1412
  </li>
1410
1413
 
1411
- <li class="covered" data-hits="39" data-linenumber="44">
1412
- <span class="hits">39</span>
1414
+ <li class="covered" data-hits="40" data-linenumber="44">
1415
+ <span class="hits">40</span>
1413
1416
 
1414
1417
  <code class="ruby"> @sound = options.delete(:sound)</code>
1415
1418
  </li>
1416
1419
 
1417
- <li class="covered" data-hits="39" data-linenumber="45">
1418
- <span class="hits">39</span>
1420
+ <li class="covered" data-hits="40" data-linenumber="45">
1421
+ <span class="hits">40</span>
1419
1422
 
1420
1423
  <code class="ruby"> @category = options.delete(:category)</code>
1421
1424
  </li>
1422
1425
 
1423
- <li class="covered" data-hits="39" data-linenumber="46">
1424
- <span class="hits">39</span>
1426
+ <li class="covered" data-hits="40" data-linenumber="46">
1427
+ <span class="hits">40</span>
1425
1428
 
1426
1429
  <code class="ruby"> @expiry = options.delete(:expiry)</code>
1427
1430
  </li>
1428
1431
 
1429
- <li class="covered" data-hits="39" data-linenumber="47">
1430
- <span class="hits">39</span>
1432
+ <li class="covered" data-hits="40" data-linenumber="47">
1433
+ <span class="hits">40</span>
1431
1434
 
1432
1435
  <code class="ruby"> @id = options.delete(:id)</code>
1433
1436
  </li>
1434
1437
 
1435
- <li class="covered" data-hits="39" data-linenumber="48">
1436
- <span class="hits">39</span>
1438
+ <li class="covered" data-hits="40" data-linenumber="48">
1439
+ <span class="hits">40</span>
1437
1440
 
1438
1441
  <code class="ruby"> @priority = options.delete(:priority)</code>
1439
1442
  </li>
1440
1443
 
1441
- <li class="covered" data-hits="39" data-linenumber="49">
1442
- <span class="hits">39</span>
1444
+ <li class="covered" data-hits="40" data-linenumber="49">
1445
+ <span class="hits">40</span>
1443
1446
 
1444
1447
  <code class="ruby"> @content_available = options.delete(:content_available)</code>
1445
1448
  </li>
1446
1449
 
1447
- <li class="covered" data-hits="39" data-linenumber="50">
1448
- <span class="hits">39</span>
1450
+ <li class="covered" data-hits="40" data-linenumber="50">
1451
+ <span class="hits">40</span>
1449
1452
 
1450
1453
  <code class="ruby"> @mutable_content = options.delete(:mutable_content)</code>
1451
1454
  </li>
1452
1455
 
1453
- <li class="never" data-hits="" data-linenumber="51">
1456
+ <li class="covered" data-hits="40" data-linenumber="51">
1457
+ <span class="hits">40</span>
1458
+
1459
+ <code class="ruby"> @url_args = options.delete(:url_args)</code>
1460
+ </li>
1461
+
1462
+ <li class="never" data-hits="" data-linenumber="52">
1454
1463
 
1455
1464
 
1456
1465
  <code class="ruby"></code>
1457
1466
  </li>
1458
1467
 
1459
- <li class="covered" data-hits="39" data-linenumber="52">
1460
- <span class="hits">39</span>
1468
+ <li class="covered" data-hits="40" data-linenumber="53">
1469
+ <span class="hits">40</span>
1461
1470
 
1462
1471
  <code class="ruby"> @custom_data = options</code>
1463
1472
  </li>
1464
1473
 
1465
- <li class="never" data-hits="" data-linenumber="53">
1474
+ <li class="never" data-hits="" data-linenumber="54">
1475
+
1476
+
1477
+ <code class="ruby"></code>
1478
+ </li>
1479
+
1480
+ <li class="covered" data-hits="40" data-linenumber="55">
1481
+ <span class="hits">40</span>
1482
+
1483
+ <code class="ruby"> @sent_at = nil</code>
1484
+ </li>
1485
+
1486
+ <li class="covered" data-hits="40" data-linenumber="56">
1487
+ <span class="hits">40</span>
1488
+
1489
+ <code class="ruby"> @apns_error_code = nil</code>
1490
+ </li>
1491
+
1492
+ <li class="never" data-hits="" data-linenumber="57">
1466
1493
 
1467
1494
 
1468
1495
  <code class="ruby"> end</code>
1469
1496
  </li>
1470
1497
 
1471
- <li class="never" data-hits="" data-linenumber="54">
1498
+ <li class="never" data-hits="" data-linenumber="58">
1472
1499
 
1473
1500
 
1474
1501
  <code class="ruby"></code>
1475
1502
  </li>
1476
1503
 
1477
- <li class="covered" data-hits="1" data-linenumber="55">
1504
+ <li class="covered" data-hits="1" data-linenumber="59">
1478
1505
  <span class="hits">1</span>
1479
1506
 
1480
1507
  <code class="ruby"> def payload</code>
1481
1508
  </li>
1482
1509
 
1483
- <li class="covered" data-hits="61" data-linenumber="56">
1510
+ <li class="covered" data-hits="61" data-linenumber="60">
1484
1511
  <span class="hits">61</span>
1485
1512
 
1486
1513
  <code class="ruby"> json = {}.merge(@custom_data || {}).inject({}) { |h, (k, v)| h[k.to_s] = v; h }</code>
1487
1514
  </li>
1488
1515
 
1489
- <li class="never" data-hits="" data-linenumber="57">
1516
+ <li class="never" data-hits="" data-linenumber="61">
1490
1517
 
1491
1518
 
1492
1519
  <code class="ruby"></code>
1493
1520
  </li>
1494
1521
 
1495
- <li class="covered" data-hits="25" data-linenumber="58">
1522
+ <li class="covered" data-hits="25" data-linenumber="62">
1496
1523
  <span class="hits">25</span>
1497
1524
 
1498
1525
  <code class="ruby"> json[&#39;aps&#39;] ||= {}</code>
1499
1526
  </li>
1500
1527
 
1501
- <li class="covered" data-hits="25" data-linenumber="59">
1528
+ <li class="covered" data-hits="25" data-linenumber="63">
1502
1529
  <span class="hits">25</span>
1503
1530
 
1504
1531
  <code class="ruby"> json[&#39;aps&#39;][&#39;alert&#39;] = @alert if @alert</code>
1505
1532
  </li>
1506
1533
 
1507
- <li class="covered" data-hits="25" data-linenumber="60">
1534
+ <li class="covered" data-hits="25" data-linenumber="64">
1508
1535
  <span class="hits">25</span>
1509
1536
 
1510
1537
  <code class="ruby"> json[&#39;aps&#39;][&#39;badge&#39;] = @badge.to_i rescue 0 if @badge</code>
1511
1538
  </li>
1512
1539
 
1513
- <li class="covered" data-hits="25" data-linenumber="61">
1540
+ <li class="covered" data-hits="25" data-linenumber="65">
1514
1541
  <span class="hits">25</span>
1515
1542
 
1516
1543
  <code class="ruby"> json[&#39;aps&#39;][&#39;sound&#39;] = @sound if @sound</code>
1517
1544
  </li>
1518
1545
 
1519
- <li class="covered" data-hits="25" data-linenumber="62">
1546
+ <li class="covered" data-hits="25" data-linenumber="66">
1520
1547
  <span class="hits">25</span>
1521
1548
 
1522
1549
  <code class="ruby"> json[&#39;aps&#39;][&#39;category&#39;] = @category if @category</code>
1523
1550
  </li>
1524
1551
 
1525
- <li class="covered" data-hits="25" data-linenumber="63">
1552
+ <li class="covered" data-hits="25" data-linenumber="67">
1526
1553
  <span class="hits">25</span>
1527
1554
 
1528
1555
  <code class="ruby"> json[&#39;aps&#39;][&#39;content-available&#39;] = 1 if @content_available</code>
1529
1556
  </li>
1530
1557
 
1531
- <li class="covered" data-hits="25" data-linenumber="64">
1558
+ <li class="covered" data-hits="25" data-linenumber="68">
1532
1559
  <span class="hits">25</span>
1533
1560
 
1534
1561
  <code class="ruby"> json[&#39;aps&#39;][&#39;mutable-content&#39;] = 1 if @mutable_content</code>
1535
1562
  </li>
1536
1563
 
1537
- <li class="never" data-hits="" data-linenumber="65">
1564
+ <li class="covered" data-hits="25" data-linenumber="69">
1565
+ <span class="hits">25</span>
1566
+
1567
+ <code class="ruby"> json[&#39;aps&#39;][&#39;url-args&#39;] = @url_args if @url_args</code>
1568
+ </li>
1569
+
1570
+ <li class="never" data-hits="" data-linenumber="70">
1538
1571
 
1539
1572
 
1540
1573
  <code class="ruby"></code>
1541
1574
  </li>
1542
1575
 
1543
- <li class="covered" data-hits="25" data-linenumber="66">
1576
+ <li class="covered" data-hits="25" data-linenumber="71">
1544
1577
  <span class="hits">25</span>
1545
1578
 
1546
1579
  <code class="ruby"> json</code>
1547
1580
  </li>
1548
1581
 
1549
- <li class="never" data-hits="" data-linenumber="67">
1582
+ <li class="never" data-hits="" data-linenumber="72">
1550
1583
 
1551
1584
 
1552
1585
  <code class="ruby"> end</code>
1553
1586
  </li>
1554
1587
 
1555
- <li class="never" data-hits="" data-linenumber="68">
1588
+ <li class="never" data-hits="" data-linenumber="73">
1556
1589
 
1557
1590
 
1558
1591
  <code class="ruby"></code>
1559
1592
  </li>
1560
1593
 
1561
- <li class="covered" data-hits="1" data-linenumber="69">
1594
+ <li class="covered" data-hits="1" data-linenumber="74">
1562
1595
  <span class="hits">1</span>
1563
1596
 
1564
1597
  <code class="ruby"> def message</code>
1565
1598
  </li>
1566
1599
 
1567
- <li class="covered" data-hits="15" data-linenumber="70">
1600
+ <li class="covered" data-hits="15" data-linenumber="75">
1568
1601
  <span class="hits">15</span>
1569
1602
 
1570
1603
  <code class="ruby"> data = [device_token_item,</code>
1571
1604
  </li>
1572
1605
 
1573
- <li class="never" data-hits="" data-linenumber="71">
1606
+ <li class="never" data-hits="" data-linenumber="76">
1574
1607
 
1575
1608
 
1576
1609
  <code class="ruby"> payload_item,</code>
1577
1610
  </li>
1578
1611
 
1579
- <li class="never" data-hits="" data-linenumber="72">
1612
+ <li class="never" data-hits="" data-linenumber="77">
1580
1613
 
1581
1614
 
1582
1615
  <code class="ruby"> identifier_item,</code>
1583
1616
  </li>
1584
1617
 
1585
- <li class="never" data-hits="" data-linenumber="73">
1618
+ <li class="never" data-hits="" data-linenumber="78">
1586
1619
 
1587
1620
 
1588
1621
  <code class="ruby"> expiration_item,</code>
1589
1622
  </li>
1590
1623
 
1591
- <li class="never" data-hits="" data-linenumber="74">
1624
+ <li class="never" data-hits="" data-linenumber="79">
1592
1625
 
1593
1626
 
1594
1627
  <code class="ruby"> priority_item].compact.join</code>
1595
1628
  </li>
1596
1629
 
1597
- <li class="covered" data-hits="15" data-linenumber="75">
1630
+ <li class="covered" data-hits="15" data-linenumber="80">
1598
1631
  <span class="hits">15</span>
1599
1632
 
1600
1633
  <code class="ruby"> [2, data.bytes.count, data].pack(&#39;cNa*&#39;)</code>
1601
1634
  </li>
1602
1635
 
1603
- <li class="never" data-hits="" data-linenumber="76">
1636
+ <li class="never" data-hits="" data-linenumber="81">
1604
1637
 
1605
1638
 
1606
1639
  <code class="ruby"> end</code>
1607
1640
  </li>
1608
1641
 
1609
- <li class="never" data-hits="" data-linenumber="77">
1642
+ <li class="never" data-hits="" data-linenumber="82">
1610
1643
 
1611
1644
 
1612
1645
  <code class="ruby"></code>
1613
1646
  </li>
1614
1647
 
1615
- <li class="covered" data-hits="1" data-linenumber="78">
1648
+ <li class="covered" data-hits="1" data-linenumber="83">
1616
1649
  <span class="hits">1</span>
1617
1650
 
1618
1651
  <code class="ruby"> def mark_as_sent!</code>
1619
1652
  </li>
1620
1653
 
1621
- <li class="covered" data-hits="2" data-linenumber="79">
1654
+ <li class="covered" data-hits="2" data-linenumber="84">
1622
1655
  <span class="hits">2</span>
1623
1656
 
1624
1657
  <code class="ruby"> @sent_at = Time.now</code>
1625
1658
  </li>
1626
1659
 
1627
- <li class="never" data-hits="" data-linenumber="80">
1660
+ <li class="never" data-hits="" data-linenumber="85">
1628
1661
 
1629
1662
 
1630
1663
  <code class="ruby"> end</code>
1631
1664
  </li>
1632
1665
 
1633
- <li class="never" data-hits="" data-linenumber="81">
1666
+ <li class="never" data-hits="" data-linenumber="86">
1634
1667
 
1635
1668
 
1636
1669
  <code class="ruby"></code>
1637
1670
  </li>
1638
1671
 
1639
- <li class="covered" data-hits="1" data-linenumber="82">
1672
+ <li class="covered" data-hits="1" data-linenumber="87">
1640
1673
  <span class="hits">1</span>
1641
1674
 
1642
1675
  <code class="ruby"> def mark_as_unsent!</code>
1643
1676
  </li>
1644
1677
 
1645
- <li class="covered" data-hits="1" data-linenumber="83">
1678
+ <li class="covered" data-hits="1" data-linenumber="88">
1646
1679
  <span class="hits">1</span>
1647
1680
 
1648
1681
  <code class="ruby"> @sent_at = nil</code>
1649
1682
  </li>
1650
1683
 
1651
- <li class="never" data-hits="" data-linenumber="84">
1684
+ <li class="never" data-hits="" data-linenumber="89">
1652
1685
 
1653
1686
 
1654
1687
  <code class="ruby"> end</code>
1655
1688
  </li>
1656
1689
 
1657
- <li class="never" data-hits="" data-linenumber="85">
1690
+ <li class="never" data-hits="" data-linenumber="90">
1658
1691
 
1659
1692
 
1660
1693
  <code class="ruby"></code>
1661
1694
  </li>
1662
1695
 
1663
- <li class="covered" data-hits="1" data-linenumber="86">
1696
+ <li class="covered" data-hits="1" data-linenumber="91">
1664
1697
  <span class="hits">1</span>
1665
1698
 
1666
1699
  <code class="ruby"> def sent?</code>
1667
1700
  </li>
1668
1701
 
1669
- <li class="covered" data-hits="3" data-linenumber="87">
1702
+ <li class="covered" data-hits="3" data-linenumber="92">
1670
1703
  <span class="hits">3</span>
1671
1704
 
1672
1705
  <code class="ruby"> !!@sent_at</code>
1673
1706
  </li>
1674
1707
 
1675
- <li class="never" data-hits="" data-linenumber="88">
1708
+ <li class="never" data-hits="" data-linenumber="93">
1676
1709
 
1677
1710
 
1678
1711
  <code class="ruby"> end</code>
1679
1712
  </li>
1680
1713
 
1681
- <li class="never" data-hits="" data-linenumber="89">
1714
+ <li class="never" data-hits="" data-linenumber="94">
1682
1715
 
1683
1716
 
1684
1717
  <code class="ruby"></code>
1685
1718
  </li>
1686
1719
 
1687
- <li class="covered" data-hits="1" data-linenumber="90">
1720
+ <li class="covered" data-hits="1" data-linenumber="95">
1688
1721
  <span class="hits">1</span>
1689
1722
 
1690
1723
  <code class="ruby"> def valid?</code>
1691
1724
  </li>
1692
1725
 
1693
- <li class="missed" data-hits="0" data-linenumber="91">
1726
+ <li class="missed" data-hits="0" data-linenumber="96">
1694
1727
 
1695
1728
 
1696
1729
  <code class="ruby"> payload.to_json.bytesize &lt;= MAXIMUM_PAYLOAD_SIZE</code>
1697
1730
  </li>
1698
1731
 
1699
- <li class="never" data-hits="" data-linenumber="92">
1732
+ <li class="never" data-hits="" data-linenumber="97">
1700
1733
 
1701
1734
 
1702
1735
  <code class="ruby"> end</code>
1703
1736
  </li>
1704
1737
 
1705
- <li class="never" data-hits="" data-linenumber="93">
1738
+ <li class="never" data-hits="" data-linenumber="98">
1706
1739
 
1707
1740
 
1708
1741
  <code class="ruby"></code>
1709
1742
  </li>
1710
1743
 
1711
- <li class="covered" data-hits="1" data-linenumber="94">
1744
+ <li class="covered" data-hits="1" data-linenumber="99">
1712
1745
  <span class="hits">1</span>
1713
1746
 
1714
1747
  <code class="ruby"> def error</code>
1715
1748
  </li>
1716
1749
 
1717
- <li class="covered" data-hits="3" data-linenumber="95">
1750
+ <li class="covered" data-hits="3" data-linenumber="100">
1718
1751
  <span class="hits">3</span>
1719
1752
 
1720
1753
  <code class="ruby"> APNSError.new(@apns_error_code) if @apns_error_code &amp;&amp; @apns_error_code.nonzero?</code>
1721
1754
  </li>
1722
1755
 
1723
- <li class="never" data-hits="" data-linenumber="96">
1756
+ <li class="never" data-hits="" data-linenumber="101">
1724
1757
 
1725
1758
 
1726
1759
  <code class="ruby"> end</code>
1727
1760
  </li>
1728
1761
 
1729
- <li class="never" data-hits="" data-linenumber="97">
1762
+ <li class="never" data-hits="" data-linenumber="102">
1730
1763
 
1731
1764
 
1732
1765
  <code class="ruby"></code>
1733
1766
  </li>
1734
1767
 
1735
- <li class="covered" data-hits="1" data-linenumber="98">
1768
+ <li class="covered" data-hits="1" data-linenumber="103">
1736
1769
  <span class="hits">1</span>
1737
1770
 
1738
1771
  <code class="ruby"> private</code>
1739
1772
  </li>
1740
1773
 
1741
- <li class="never" data-hits="" data-linenumber="99">
1774
+ <li class="never" data-hits="" data-linenumber="104">
1742
1775
 
1743
1776
 
1744
1777
  <code class="ruby"></code>
1745
1778
  </li>
1746
1779
 
1747
- <li class="covered" data-hits="1" data-linenumber="100">
1780
+ <li class="covered" data-hits="1" data-linenumber="105">
1748
1781
  <span class="hits">1</span>
1749
1782
 
1750
1783
  <code class="ruby"> def device_token_item</code>
1751
1784
  </li>
1752
1785
 
1753
- <li class="covered" data-hits="15" data-linenumber="101">
1786
+ <li class="covered" data-hits="15" data-linenumber="106">
1754
1787
  <span class="hits">15</span>
1755
1788
 
1756
1789
  <code class="ruby"> [1, 32, @token.gsub(/[&lt;\s&gt;]/, &#39;&#39;)].pack(&#39;cnH64&#39;)</code>
1757
1790
  </li>
1758
1791
 
1759
- <li class="never" data-hits="" data-linenumber="102">
1792
+ <li class="never" data-hits="" data-linenumber="107">
1760
1793
 
1761
1794
 
1762
1795
  <code class="ruby"> end</code>
1763
1796
  </li>
1764
1797
 
1765
- <li class="never" data-hits="" data-linenumber="103">
1798
+ <li class="never" data-hits="" data-linenumber="108">
1766
1799
 
1767
1800
 
1768
1801
  <code class="ruby"></code>
1769
1802
  </li>
1770
1803
 
1771
- <li class="covered" data-hits="1" data-linenumber="104">
1804
+ <li class="covered" data-hits="1" data-linenumber="109">
1772
1805
  <span class="hits">1</span>
1773
1806
 
1774
1807
  <code class="ruby"> def payload_item</code>
1775
1808
  </li>
1776
1809
 
1777
- <li class="covered" data-hits="15" data-linenumber="105">
1810
+ <li class="covered" data-hits="15" data-linenumber="110">
1778
1811
  <span class="hits">15</span>
1779
1812
 
1780
1813
  <code class="ruby"> json = payload.to_json</code>
1781
1814
  </li>
1782
1815
 
1783
- <li class="covered" data-hits="15" data-linenumber="106">
1816
+ <li class="covered" data-hits="15" data-linenumber="111">
1784
1817
  <span class="hits">15</span>
1785
1818
 
1786
1819
  <code class="ruby"> [2, json.bytes.count, json].pack(&#39;cna*&#39;)</code>
1787
1820
  </li>
1788
1821
 
1789
- <li class="never" data-hits="" data-linenumber="107">
1822
+ <li class="never" data-hits="" data-linenumber="112">
1790
1823
 
1791
1824
 
1792
1825
  <code class="ruby"> end</code>
1793
1826
  </li>
1794
1827
 
1795
- <li class="never" data-hits="" data-linenumber="108">
1828
+ <li class="never" data-hits="" data-linenumber="113">
1796
1829
 
1797
1830
 
1798
1831
  <code class="ruby"></code>
1799
1832
  </li>
1800
1833
 
1801
- <li class="covered" data-hits="1" data-linenumber="109">
1834
+ <li class="covered" data-hits="1" data-linenumber="114">
1802
1835
  <span class="hits">1</span>
1803
1836
 
1804
1837
  <code class="ruby"> def identifier_item</code>
1805
1838
  </li>
1806
1839
 
1807
- <li class="covered" data-hits="15" data-linenumber="110">
1840
+ <li class="covered" data-hits="15" data-linenumber="115">
1808
1841
  <span class="hits">15</span>
1809
1842
 
1810
1843
  <code class="ruby"> [3, 4, @id].pack(&#39;cnN&#39;) unless @id.nil?</code>
1811
1844
  </li>
1812
1845
 
1813
- <li class="never" data-hits="" data-linenumber="111">
1846
+ <li class="never" data-hits="" data-linenumber="116">
1814
1847
 
1815
1848
 
1816
1849
  <code class="ruby"> end</code>
1817
1850
  </li>
1818
1851
 
1819
- <li class="never" data-hits="" data-linenumber="112">
1852
+ <li class="never" data-hits="" data-linenumber="117">
1820
1853
 
1821
1854
 
1822
1855
  <code class="ruby"></code>
1823
1856
  </li>
1824
1857
 
1825
- <li class="covered" data-hits="1" data-linenumber="113">
1858
+ <li class="covered" data-hits="1" data-linenumber="118">
1826
1859
  <span class="hits">1</span>
1827
1860
 
1828
1861
  <code class="ruby"> def expiration_item</code>
1829
1862
  </li>
1830
1863
 
1831
- <li class="covered" data-hits="15" data-linenumber="114">
1864
+ <li class="covered" data-hits="15" data-linenumber="119">
1832
1865
  <span class="hits">15</span>
1833
1866
 
1834
1867
  <code class="ruby"> [4, 4, @expiry.to_i].pack(&#39;cnN&#39;) unless @expiry.nil?</code>
1835
1868
  </li>
1836
1869
 
1837
- <li class="never" data-hits="" data-linenumber="115">
1870
+ <li class="never" data-hits="" data-linenumber="120">
1838
1871
 
1839
1872
 
1840
1873
  <code class="ruby"> end</code>
1841
1874
  </li>
1842
1875
 
1843
- <li class="never" data-hits="" data-linenumber="116">
1876
+ <li class="never" data-hits="" data-linenumber="121">
1844
1877
 
1845
1878
 
1846
1879
  <code class="ruby"></code>
1847
1880
  </li>
1848
1881
 
1849
- <li class="covered" data-hits="1" data-linenumber="117">
1882
+ <li class="covered" data-hits="1" data-linenumber="122">
1850
1883
  <span class="hits">1</span>
1851
1884
 
1852
1885
  <code class="ruby"> def priority_item</code>
1853
1886
  </li>
1854
1887
 
1855
- <li class="covered" data-hits="15" data-linenumber="118">
1888
+ <li class="covered" data-hits="15" data-linenumber="123">
1856
1889
  <span class="hits">15</span>
1857
1890
 
1858
1891
  <code class="ruby"> [5, 1, @priority].pack(&#39;cnc&#39;) unless @priority.nil?</code>
1859
1892
  </li>
1860
1893
 
1861
- <li class="never" data-hits="" data-linenumber="119">
1894
+ <li class="never" data-hits="" data-linenumber="124">
1862
1895
 
1863
1896
 
1864
1897
  <code class="ruby"> end</code>
1865
1898
  </li>
1866
1899
 
1867
- <li class="never" data-hits="" data-linenumber="120">
1900
+ <li class="never" data-hits="" data-linenumber="125">
1868
1901
 
1869
1902
 
1870
1903
  <code class="ruby"> end</code>
1871
1904
  </li>
1872
1905
 
1873
- <li class="never" data-hits="" data-linenumber="121">
1906
+ <li class="never" data-hits="" data-linenumber="126">
1874
1907
 
1875
1908
 
1876
1909
  <code class="ruby">end</code>
@@ -1879,8 +1912,9 @@
1879
1912
  </ol>
1880
1913
  </pre>
1881
1914
  </div>
1915
+
1882
1916
 
1883
- <div class="source_table" id="e8b12a361feeb011b347553315d0176790f5020a">
1917
+ <div class="source_table" id="8b87415b3bd8a7824eada4b0600da3fd57094386">
1884
1918
  <div class="header">
1885
1919
  <h3>lib/houston/version.rb</h3>
1886
1920
  <h4><span class="green">100.0 %</span> covered</h4>
@@ -1903,7 +1937,7 @@
1903
1937
  <li class="covered" data-hits="1" data-linenumber="2">
1904
1938
  <span class="hits">1</span>
1905
1939
 
1906
- <code class="ruby"> VERSION = &#39;2.2.4&#39;</code>
1940
+ <code class="ruby"> VERSION = &#39;2.3.0&#39;</code>
1907
1941
  </li>
1908
1942
 
1909
1943
  <li class="never" data-hits="" data-linenumber="3">
@@ -1915,6 +1949,7 @@
1915
1949
  </ol>
1916
1950
  </pre>
1917
1951
  </div>
1952
+
1918
1953
 
1919
1954
  </div>
1920
1955
  </div>