houston 2.2.0 → 2.2.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.lock +1 -1
- data/coverage/index.html +224 -278
- data/houston-2.2.0.gem +0 -0
- data/lib/houston/client.rb +5 -22
- data/lib/houston/notification.rb +9 -1
- data/lib/houston/version.rb +1 -1
- data/spec/notification_spec.rb +27 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b652126cc88e2b51a4cf8282ec27e317d7b6e249
|
|
4
|
+
data.tar.gz: 998079151632afedad17876c7f62b68a90e3ab4b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36679b223f5bdb96a97a15bfaec052bea6c7a21f88083d88629d9ab01fdec6342553444cd582d1500c784bb1bae675b975bb70af818a93917d12e50645b0c78d
|
|
7
|
+
data.tar.gz: f6f14d081ae9e2f91224734660bbe4b3791fd2c045070a8a1c50e4a4adc4c9f52961d187e77b4aa6348781bc82b50aa2c8123aca9e340052d4c675cd97931b3b
|
data/Gemfile.lock
CHANGED
data/coverage/index.html
CHANGED
|
@@ -14,27 +14,27 @@
|
|
|
14
14
|
<img src="./assets/0.8.0/loading.gif" alt="loading"/>
|
|
15
15
|
</div>
|
|
16
16
|
<div id="wrapper" style="display:none;">
|
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2014-08-
|
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2014-08-13T12:58:13-07:00">2014-08-13T12:58:13-07: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">68
|
|
24
|
+
(<span class="covered_percent"><span class="red">74.68%</span></span>
|
|
25
25
|
covered at
|
|
26
26
|
<span class="covered_strength">
|
|
27
27
|
<span class="green">
|
|
28
|
-
5.
|
|
28
|
+
5.64
|
|
29
29
|
</span>
|
|
30
30
|
</span> hits/line)
|
|
31
31
|
</h2>
|
|
32
32
|
<a name="AllFiles"></a>
|
|
33
33
|
<div>
|
|
34
34
|
<b>4</b> files in total.
|
|
35
|
-
<b>
|
|
36
|
-
<span class="green"><b>
|
|
37
|
-
<span class="red"><b>
|
|
35
|
+
<b>158</b> relevant lines.
|
|
36
|
+
<span class="green"><b>118</b> lines covered</span> and
|
|
37
|
+
<span class="red"><b>40</b> lines missed </span>
|
|
38
38
|
</div>
|
|
39
39
|
<table class="file_list">
|
|
40
40
|
<thead>
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
|
|
63
63
|
<tr>
|
|
64
64
|
<td class="strong"><a href="#a3eaf6c199f250e522479598f621cf8c25128a64" class="src_link" title="lib/houston/client.rb">lib/houston/client.rb</a></td>
|
|
65
|
-
<td class="red strong">
|
|
66
|
-
<td>
|
|
67
|
-
<td>
|
|
65
|
+
<td class="red strong">69.81 %</td>
|
|
66
|
+
<td>84</td>
|
|
67
|
+
<td>53</td>
|
|
68
68
|
<td>37</td>
|
|
69
|
-
<td>
|
|
70
|
-
<td>2.
|
|
69
|
+
<td>16</td>
|
|
70
|
+
<td>2.5</td>
|
|
71
71
|
</tr>
|
|
72
72
|
|
|
73
73
|
<tr>
|
|
@@ -82,12 +82,12 @@
|
|
|
82
82
|
|
|
83
83
|
<tr>
|
|
84
84
|
<td class="strong"><a href="#7ea710ee036930b7540634e0cd00f6d863839f93" class="src_link" title="lib/houston/notification.rb">lib/houston/notification.rb</a></td>
|
|
85
|
-
<td class="green strong">
|
|
86
|
-
<td>
|
|
87
|
-
<td>
|
|
88
|
-
<td>
|
|
89
|
-
<td>
|
|
90
|
-
<td>12.
|
|
85
|
+
<td class="green strong">98.36 %</td>
|
|
86
|
+
<td>118</td>
|
|
87
|
+
<td>61</td>
|
|
88
|
+
<td>60</td>
|
|
89
|
+
<td>1</td>
|
|
90
|
+
<td>12.1</td>
|
|
91
91
|
</tr>
|
|
92
92
|
|
|
93
93
|
</tbody>
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
<div class="source_table" id="a3eaf6c199f250e522479598f621cf8c25128a64">
|
|
152
152
|
<div class="header">
|
|
153
153
|
<h3>lib/houston/client.rb</h3>
|
|
154
|
-
<h4><span class="red">
|
|
154
|
+
<h4><span class="red">69.81 %</span> covered</h4>
|
|
155
155
|
<div>
|
|
156
|
-
<b>
|
|
156
|
+
<b>53</b> relevant lines.
|
|
157
157
|
<span class="green"><b>37</b> lines covered</span> and
|
|
158
|
-
<span class="red"><b>
|
|
158
|
+
<span class="red"><b>16</b> lines missed.</span>
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
|
|
@@ -390,130 +390,130 @@
|
|
|
390
390
|
<code class="ruby"> notifications.flatten!</code>
|
|
391
391
|
</li>
|
|
392
392
|
|
|
393
|
-
<li class="
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
<code class="ruby"> error = nil</code>
|
|
397
|
-
</li>
|
|
398
|
-
|
|
399
|
-
<li class="never" data-hits="" data-linenumber="40">
|
|
393
|
+
<li class="never" data-hits="" data-linenumber="39">
|
|
400
394
|
|
|
401
395
|
|
|
402
396
|
<code class="ruby"></code>
|
|
403
397
|
</li>
|
|
404
398
|
|
|
405
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
399
|
+
<li class="missed" data-hits="0" data-linenumber="40">
|
|
406
400
|
|
|
407
401
|
|
|
408
402
|
<code class="ruby"> Connection.open(@gateway_uri, @certificate, @passphrase) do |connection|</code>
|
|
409
403
|
</li>
|
|
410
404
|
|
|
411
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
405
|
+
<li class="missed" data-hits="0" data-linenumber="41">
|
|
412
406
|
|
|
413
407
|
|
|
414
408
|
<code class="ruby"> ssl = connection.ssl</code>
|
|
415
409
|
</li>
|
|
416
410
|
|
|
417
|
-
<li class="never" data-hits="" data-linenumber="
|
|
411
|
+
<li class="never" data-hits="" data-linenumber="42">
|
|
418
412
|
|
|
419
413
|
|
|
420
414
|
<code class="ruby"></code>
|
|
421
415
|
</li>
|
|
422
416
|
|
|
423
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
417
|
+
<li class="missed" data-hits="0" data-linenumber="43">
|
|
424
418
|
|
|
425
419
|
|
|
426
420
|
<code class="ruby"> notifications.each_with_index do |notification, index|</code>
|
|
427
421
|
</li>
|
|
428
422
|
|
|
429
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
423
|
+
<li class="missed" data-hits="0" data-linenumber="44">
|
|
430
424
|
|
|
431
425
|
|
|
432
426
|
<code class="ruby"> next unless notification.kind_of?(Notification)</code>
|
|
433
427
|
</li>
|
|
434
428
|
|
|
435
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
429
|
+
<li class="missed" data-hits="0" data-linenumber="45">
|
|
436
430
|
|
|
437
431
|
|
|
438
432
|
<code class="ruby"> next if notification.sent?</code>
|
|
439
433
|
</li>
|
|
440
434
|
|
|
441
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
435
|
+
<li class="missed" data-hits="0" data-linenumber="46">
|
|
442
436
|
|
|
443
437
|
|
|
444
438
|
<code class="ruby"> next unless notification.valid?</code>
|
|
445
439
|
</li>
|
|
446
440
|
|
|
447
|
-
<li class="never" data-hits="" data-linenumber="
|
|
441
|
+
<li class="never" data-hits="" data-linenumber="47">
|
|
448
442
|
|
|
449
443
|
|
|
450
444
|
<code class="ruby"></code>
|
|
451
445
|
</li>
|
|
452
446
|
|
|
453
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
447
|
+
<li class="missed" data-hits="0" data-linenumber="48">
|
|
454
448
|
|
|
455
449
|
|
|
456
450
|
<code class="ruby"> notification.id = index</code>
|
|
457
451
|
</li>
|
|
458
452
|
|
|
459
|
-
<li class="never" data-hits="" data-linenumber="
|
|
453
|
+
<li class="never" data-hits="" data-linenumber="49">
|
|
460
454
|
|
|
461
455
|
|
|
462
456
|
<code class="ruby"></code>
|
|
463
457
|
</li>
|
|
464
458
|
|
|
465
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
459
|
+
<li class="missed" data-hits="0" data-linenumber="50">
|
|
466
460
|
|
|
467
461
|
|
|
468
462
|
<code class="ruby"> connection.write(notification.message)</code>
|
|
469
463
|
</li>
|
|
470
464
|
|
|
471
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
465
|
+
<li class="missed" data-hits="0" data-linenumber="51">
|
|
472
466
|
|
|
473
467
|
|
|
474
468
|
<code class="ruby"> notification.mark_as_sent!</code>
|
|
475
469
|
</li>
|
|
476
470
|
|
|
477
|
-
<li class="never" data-hits="" data-linenumber="
|
|
471
|
+
<li class="never" data-hits="" data-linenumber="52">
|
|
478
472
|
|
|
479
473
|
|
|
480
474
|
<code class="ruby"></code>
|
|
481
475
|
</li>
|
|
482
476
|
|
|
477
|
+
<li class="missed" data-hits="0" data-linenumber="53">
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
<code class="ruby"> read_socket, write_socket = IO.select([ssl], [ssl], [ssl], nil)</code>
|
|
481
|
+
</li>
|
|
482
|
+
|
|
483
483
|
<li class="missed" data-hits="0" data-linenumber="54">
|
|
484
484
|
|
|
485
485
|
|
|
486
|
-
<code class="ruby">
|
|
486
|
+
<code class="ruby"> if (read_socket && read_socket[0])</code>
|
|
487
487
|
</li>
|
|
488
488
|
|
|
489
|
-
<li class="
|
|
489
|
+
<li class="missed" data-hits="0" data-linenumber="55">
|
|
490
490
|
|
|
491
491
|
|
|
492
|
-
<code class="ruby"
|
|
492
|
+
<code class="ruby"> if error = connection.read(6)</code>
|
|
493
493
|
</li>
|
|
494
494
|
|
|
495
495
|
<li class="missed" data-hits="0" data-linenumber="56">
|
|
496
496
|
|
|
497
497
|
|
|
498
|
-
<code class="ruby">
|
|
498
|
+
<code class="ruby"> command, status, index = error.unpack("ccN")</code>
|
|
499
499
|
</li>
|
|
500
500
|
|
|
501
501
|
<li class="missed" data-hits="0" data-linenumber="57">
|
|
502
502
|
|
|
503
503
|
|
|
504
|
-
<code class="ruby">
|
|
504
|
+
<code class="ruby"> notification.apns_error_code = status</code>
|
|
505
505
|
</li>
|
|
506
506
|
|
|
507
507
|
<li class="missed" data-hits="0" data-linenumber="58">
|
|
508
508
|
|
|
509
509
|
|
|
510
|
-
<code class="ruby">
|
|
510
|
+
<code class="ruby"> notification.mark_as_unsent!</code>
|
|
511
511
|
</li>
|
|
512
512
|
|
|
513
|
-
<li class="
|
|
513
|
+
<li class="never" data-hits="" data-linenumber="59">
|
|
514
514
|
|
|
515
515
|
|
|
516
|
-
<code class="ruby">
|
|
516
|
+
<code class="ruby"> end</code>
|
|
517
517
|
</li>
|
|
518
518
|
|
|
519
519
|
<li class="never" data-hits="" data-linenumber="60">
|
|
@@ -531,238 +531,136 @@
|
|
|
531
531
|
<li class="never" data-hits="" data-linenumber="62">
|
|
532
532
|
|
|
533
533
|
|
|
534
|
-
<code class="ruby"></code>
|
|
535
|
-
</li>
|
|
536
|
-
|
|
537
|
-
<li class="missed" data-hits="0" data-linenumber="63">
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
<code class="ruby"> return if notifications.count == 1</code>
|
|
541
|
-
</li>
|
|
542
|
-
|
|
543
|
-
<li class="never" data-hits="" data-linenumber="64">
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
<code class="ruby"></code>
|
|
547
|
-
</li>
|
|
548
|
-
|
|
549
|
-
<li class="missed" data-hits="0" data-linenumber="65">
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
<code class="ruby"> unless error</code>
|
|
553
|
-
</li>
|
|
554
|
-
|
|
555
|
-
<li class="missed" data-hits="0" data-linenumber="66">
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
<code class="ruby"> read_socket, write_socket = IO.select([ssl], nil, [ssl], timeout)</code>
|
|
559
|
-
</li>
|
|
560
|
-
|
|
561
|
-
<li class="missed" data-hits="0" data-linenumber="67">
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
<code class="ruby"> if (read_socket && read_socket[0])</code>
|
|
565
|
-
</li>
|
|
566
|
-
|
|
567
|
-
<li class="missed" data-hits="0" data-linenumber="68">
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
<code class="ruby"> error = connection.read(6)</code>
|
|
571
|
-
</li>
|
|
572
|
-
|
|
573
|
-
<li class="never" data-hits="" data-linenumber="69">
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
<code class="ruby"> end</code>
|
|
577
|
-
</li>
|
|
578
|
-
|
|
579
|
-
<li class="never" data-hits="" data-linenumber="70">
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
<code class="ruby"> end</code>
|
|
583
|
-
</li>
|
|
584
|
-
|
|
585
|
-
<li class="never" data-hits="" data-linenumber="71">
|
|
586
|
-
|
|
587
|
-
|
|
588
534
|
<code class="ruby"> end</code>
|
|
589
535
|
</li>
|
|
590
536
|
|
|
591
|
-
<li class="never" data-hits="" data-linenumber="
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
<code class="ruby"></code>
|
|
595
|
-
</li>
|
|
596
|
-
|
|
597
|
-
<li class="missed" data-hits="0" data-linenumber="73">
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
<code class="ruby"> if error</code>
|
|
601
|
-
</li>
|
|
602
|
-
|
|
603
|
-
<li class="missed" data-hits="0" data-linenumber="74">
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
<code class="ruby"> command, status, index = error.unpack("ccN")</code>
|
|
607
|
-
</li>
|
|
608
|
-
|
|
609
|
-
<li class="missed" data-hits="0" data-linenumber="75">
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
<code class="ruby"> notifications[index].apns_error_code = status</code>
|
|
613
|
-
</li>
|
|
614
|
-
|
|
615
|
-
<li class="missed" data-hits="0" data-linenumber="76">
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
<code class="ruby"> notifications.slice!(0..index)</code>
|
|
619
|
-
</li>
|
|
620
|
-
|
|
621
|
-
<li class="missed" data-hits="0" data-linenumber="77">
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
<code class="ruby"> notifications.each(&:mark_as_unsent!)</code>
|
|
625
|
-
</li>
|
|
626
|
-
|
|
627
|
-
<li class="missed" data-hits="0" data-linenumber="78">
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
<code class="ruby"> push(*notifications)</code>
|
|
631
|
-
</li>
|
|
632
|
-
|
|
633
|
-
<li class="never" data-hits="" data-linenumber="79">
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
<code class="ruby"> end</code>
|
|
637
|
-
</li>
|
|
638
|
-
|
|
639
|
-
<li class="never" data-hits="" data-linenumber="80">
|
|
537
|
+
<li class="never" data-hits="" data-linenumber="63">
|
|
640
538
|
|
|
641
539
|
|
|
642
540
|
<code class="ruby"> end</code>
|
|
643
541
|
</li>
|
|
644
542
|
|
|
645
|
-
<li class="never" data-hits="" data-linenumber="
|
|
543
|
+
<li class="never" data-hits="" data-linenumber="64">
|
|
646
544
|
|
|
647
545
|
|
|
648
546
|
<code class="ruby"></code>
|
|
649
547
|
</li>
|
|
650
548
|
|
|
651
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
549
|
+
<li class="covered" data-hits="1" data-linenumber="65">
|
|
652
550
|
<span class="hits">1</span>
|
|
653
551
|
|
|
654
552
|
<code class="ruby"> def unregistered_devices</code>
|
|
655
553
|
</li>
|
|
656
554
|
|
|
657
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
555
|
+
<li class="covered" data-hits="2" data-linenumber="66">
|
|
658
556
|
<span class="hits">2</span>
|
|
659
557
|
|
|
660
558
|
<code class="ruby"> devices = []</code>
|
|
661
559
|
</li>
|
|
662
560
|
|
|
663
|
-
<li class="never" data-hits="" data-linenumber="
|
|
561
|
+
<li class="never" data-hits="" data-linenumber="67">
|
|
664
562
|
|
|
665
563
|
|
|
666
564
|
<code class="ruby"></code>
|
|
667
565
|
</li>
|
|
668
566
|
|
|
669
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
567
|
+
<li class="covered" data-hits="2" data-linenumber="68">
|
|
670
568
|
<span class="hits">2</span>
|
|
671
569
|
|
|
672
570
|
<code class="ruby"> Connection.open(@feedback_uri, @certificate, @passphrase) do |connection|</code>
|
|
673
571
|
</li>
|
|
674
572
|
|
|
675
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
573
|
+
<li class="covered" data-hits="2" data-linenumber="69">
|
|
676
574
|
<span class="hits">2</span>
|
|
677
575
|
|
|
678
576
|
<code class="ruby"> while line = connection.read(38)</code>
|
|
679
577
|
</li>
|
|
680
578
|
|
|
681
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
579
|
+
<li class="covered" data-hits="4" data-linenumber="70">
|
|
682
580
|
<span class="hits">4</span>
|
|
683
581
|
|
|
684
582
|
<code class="ruby"> feedback = line.unpack('N1n1H140')</code>
|
|
685
583
|
</li>
|
|
686
584
|
|
|
687
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
585
|
+
<li class="covered" data-hits="4" data-linenumber="71">
|
|
688
586
|
<span class="hits">4</span>
|
|
689
587
|
|
|
690
588
|
<code class="ruby"> timestamp = feedback[0]</code>
|
|
691
589
|
</li>
|
|
692
590
|
|
|
693
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
591
|
+
<li class="covered" data-hits="4" data-linenumber="72">
|
|
694
592
|
<span class="hits">4</span>
|
|
695
593
|
|
|
696
594
|
<code class="ruby"> token = feedback[2].scan(/.{0,8}/).join(' ').strip</code>
|
|
697
595
|
</li>
|
|
698
596
|
|
|
699
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
597
|
+
<li class="covered" data-hits="4" data-linenumber="73">
|
|
700
598
|
<span class="hits">4</span>
|
|
701
599
|
|
|
702
600
|
<code class="ruby"> devices << {token: token, timestamp: timestamp} if token && timestamp</code>
|
|
703
601
|
</li>
|
|
704
602
|
|
|
705
|
-
<li class="never" data-hits="" data-linenumber="
|
|
603
|
+
<li class="never" data-hits="" data-linenumber="74">
|
|
706
604
|
|
|
707
605
|
|
|
708
606
|
<code class="ruby"> end</code>
|
|
709
607
|
</li>
|
|
710
608
|
|
|
711
|
-
<li class="never" data-hits="" data-linenumber="
|
|
609
|
+
<li class="never" data-hits="" data-linenumber="75">
|
|
712
610
|
|
|
713
611
|
|
|
714
612
|
<code class="ruby"> end</code>
|
|
715
613
|
</li>
|
|
716
614
|
|
|
717
|
-
<li class="never" data-hits="" data-linenumber="
|
|
615
|
+
<li class="never" data-hits="" data-linenumber="76">
|
|
718
616
|
|
|
719
617
|
|
|
720
618
|
<code class="ruby"></code>
|
|
721
619
|
</li>
|
|
722
620
|
|
|
723
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
621
|
+
<li class="covered" data-hits="2" data-linenumber="77">
|
|
724
622
|
<span class="hits">2</span>
|
|
725
623
|
|
|
726
624
|
<code class="ruby"> devices</code>
|
|
727
625
|
</li>
|
|
728
626
|
|
|
729
|
-
<li class="never" data-hits="" data-linenumber="
|
|
627
|
+
<li class="never" data-hits="" data-linenumber="78">
|
|
730
628
|
|
|
731
629
|
|
|
732
630
|
<code class="ruby"> end</code>
|
|
733
631
|
</li>
|
|
734
632
|
|
|
735
|
-
<li class="never" data-hits="" data-linenumber="
|
|
633
|
+
<li class="never" data-hits="" data-linenumber="79">
|
|
736
634
|
|
|
737
635
|
|
|
738
636
|
<code class="ruby"></code>
|
|
739
637
|
</li>
|
|
740
638
|
|
|
741
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
639
|
+
<li class="covered" data-hits="1" data-linenumber="80">
|
|
742
640
|
<span class="hits">1</span>
|
|
743
641
|
|
|
744
642
|
<code class="ruby"> def devices</code>
|
|
745
643
|
</li>
|
|
746
644
|
|
|
747
|
-
<li class="covered" data-hits="3" data-linenumber="
|
|
645
|
+
<li class="covered" data-hits="3" data-linenumber="81">
|
|
748
646
|
<span class="hits">3</span>
|
|
749
647
|
|
|
750
648
|
<code class="ruby"> unregistered_devices.collect{|device| device[:token]}</code>
|
|
751
649
|
</li>
|
|
752
650
|
|
|
753
|
-
<li class="never" data-hits="" data-linenumber="
|
|
651
|
+
<li class="never" data-hits="" data-linenumber="82">
|
|
754
652
|
|
|
755
653
|
|
|
756
654
|
<code class="ruby"> end</code>
|
|
757
655
|
</li>
|
|
758
656
|
|
|
759
|
-
<li class="never" data-hits="" data-linenumber="
|
|
657
|
+
<li class="never" data-hits="" data-linenumber="83">
|
|
760
658
|
|
|
761
659
|
|
|
762
660
|
<code class="ruby"> end</code>
|
|
763
661
|
</li>
|
|
764
662
|
|
|
765
|
-
<li class="never" data-hits="" data-linenumber="
|
|
663
|
+
<li class="never" data-hits="" data-linenumber="84">
|
|
766
664
|
|
|
767
665
|
|
|
768
666
|
<code class="ruby">end</code>
|
|
@@ -1183,11 +1081,11 @@
|
|
|
1183
1081
|
<div class="source_table" id="7ea710ee036930b7540634e0cd00f6d863839f93">
|
|
1184
1082
|
<div class="header">
|
|
1185
1083
|
<h3>lib/houston/notification.rb</h3>
|
|
1186
|
-
<h4><span class="green">
|
|
1084
|
+
<h4><span class="green">98.36 %</span> covered</h4>
|
|
1187
1085
|
<div>
|
|
1188
|
-
<b>
|
|
1189
|
-
<span class="green"><b>
|
|
1190
|
-
<span class="red"><b>
|
|
1086
|
+
<b>61</b> relevant lines.
|
|
1087
|
+
<span class="green"><b>60</b> lines covered</span> and
|
|
1088
|
+
<span class="red"><b>1</b> lines missed.</span>
|
|
1191
1089
|
</div>
|
|
1192
1090
|
</div>
|
|
1193
1091
|
|
|
@@ -1311,544 +1209,592 @@
|
|
|
1311
1209
|
<li class="never" data-hits="" data-linenumber="20">
|
|
1312
1210
|
|
|
1313
1211
|
|
|
1212
|
+
<code class="ruby"></code>
|
|
1213
|
+
</li>
|
|
1214
|
+
|
|
1215
|
+
<li class="covered" data-hits="1" data-linenumber="21">
|
|
1216
|
+
<span class="hits">1</span>
|
|
1217
|
+
|
|
1218
|
+
<code class="ruby"> attr_reader :code</code>
|
|
1219
|
+
</li>
|
|
1220
|
+
|
|
1221
|
+
<li class="never" data-hits="" data-linenumber="22">
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
<code class="ruby"></code>
|
|
1225
|
+
</li>
|
|
1226
|
+
|
|
1227
|
+
<li class="covered" data-hits="1" data-linenumber="23">
|
|
1228
|
+
<span class="hits">1</span>
|
|
1229
|
+
|
|
1230
|
+
<code class="ruby"> def initialize(code)</code>
|
|
1231
|
+
</li>
|
|
1232
|
+
|
|
1233
|
+
<li class="covered" data-hits="1" data-linenumber="24">
|
|
1234
|
+
<span class="hits">1</span>
|
|
1235
|
+
|
|
1236
|
+
<code class="ruby"> raise ArgumentError unless CODES.include?(code)</code>
|
|
1237
|
+
</li>
|
|
1238
|
+
|
|
1239
|
+
<li class="covered" data-hits="1" data-linenumber="25">
|
|
1240
|
+
<span class="hits">1</span>
|
|
1241
|
+
|
|
1242
|
+
<code class="ruby"> super(CODES[code])</code>
|
|
1243
|
+
</li>
|
|
1244
|
+
|
|
1245
|
+
<li class="covered" data-hits="1" data-linenumber="26">
|
|
1246
|
+
<span class="hits">1</span>
|
|
1247
|
+
|
|
1248
|
+
<code class="ruby"> @code = code</code>
|
|
1249
|
+
</li>
|
|
1250
|
+
|
|
1251
|
+
<li class="never" data-hits="" data-linenumber="27">
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
<code class="ruby"> end</code>
|
|
1255
|
+
</li>
|
|
1256
|
+
|
|
1257
|
+
<li class="never" data-hits="" data-linenumber="28">
|
|
1258
|
+
|
|
1259
|
+
|
|
1314
1260
|
<code class="ruby"> end</code>
|
|
1315
1261
|
</li>
|
|
1316
1262
|
|
|
1317
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1263
|
+
<li class="never" data-hits="" data-linenumber="29">
|
|
1318
1264
|
|
|
1319
1265
|
|
|
1320
1266
|
<code class="ruby"></code>
|
|
1321
1267
|
</li>
|
|
1322
1268
|
|
|
1323
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1269
|
+
<li class="covered" data-hits="1" data-linenumber="30">
|
|
1324
1270
|
<span class="hits">1</span>
|
|
1325
1271
|
|
|
1326
1272
|
<code class="ruby"> MAXIMUM_PAYLOAD_SIZE = 2048</code>
|
|
1327
1273
|
</li>
|
|
1328
1274
|
|
|
1329
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1275
|
+
<li class="never" data-hits="" data-linenumber="31">
|
|
1330
1276
|
|
|
1331
1277
|
|
|
1332
1278
|
<code class="ruby"></code>
|
|
1333
1279
|
</li>
|
|
1334
1280
|
|
|
1335
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1281
|
+
<li class="covered" data-hits="1" data-linenumber="32">
|
|
1336
1282
|
<span class="hits">1</span>
|
|
1337
1283
|
|
|
1338
1284
|
<code class="ruby"> attr_accessor :token, :alert, :badge, :sound, :category, :content_available, :custom_data, :id, :expiry, :priority</code>
|
|
1339
1285
|
</li>
|
|
1340
1286
|
|
|
1341
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1287
|
+
<li class="covered" data-hits="1" data-linenumber="33">
|
|
1342
1288
|
<span class="hits">1</span>
|
|
1343
1289
|
|
|
1344
1290
|
<code class="ruby"> attr_reader :sent_at</code>
|
|
1345
1291
|
</li>
|
|
1346
1292
|
|
|
1347
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1293
|
+
<li class="covered" data-hits="1" data-linenumber="34">
|
|
1348
1294
|
<span class="hits">1</span>
|
|
1349
1295
|
|
|
1350
1296
|
<code class="ruby"> attr_writer :apns_error_code</code>
|
|
1351
1297
|
</li>
|
|
1352
1298
|
|
|
1353
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1299
|
+
<li class="never" data-hits="" data-linenumber="35">
|
|
1354
1300
|
|
|
1355
1301
|
|
|
1356
1302
|
<code class="ruby"></code>
|
|
1357
1303
|
</li>
|
|
1358
1304
|
|
|
1359
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1305
|
+
<li class="covered" data-hits="1" data-linenumber="36">
|
|
1360
1306
|
<span class="hits">1</span>
|
|
1361
1307
|
|
|
1362
1308
|
<code class="ruby"> alias :device :token</code>
|
|
1363
1309
|
</li>
|
|
1364
1310
|
|
|
1365
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1311
|
+
<li class="covered" data-hits="1" data-linenumber="37">
|
|
1366
1312
|
<span class="hits">1</span>
|
|
1367
1313
|
|
|
1368
1314
|
<code class="ruby"> alias :device= :token=</code>
|
|
1369
1315
|
</li>
|
|
1370
1316
|
|
|
1371
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1317
|
+
<li class="never" data-hits="" data-linenumber="38">
|
|
1372
1318
|
|
|
1373
1319
|
|
|
1374
1320
|
<code class="ruby"></code>
|
|
1375
1321
|
</li>
|
|
1376
1322
|
|
|
1377
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1323
|
+
<li class="covered" data-hits="1" data-linenumber="39">
|
|
1378
1324
|
<span class="hits">1</span>
|
|
1379
1325
|
|
|
1380
1326
|
<code class="ruby"> def initialize(options = {})</code>
|
|
1381
1327
|
</li>
|
|
1382
1328
|
|
|
1383
|
-
<li class="covered" data-hits="
|
|
1384
|
-
<span class="hits">
|
|
1329
|
+
<li class="covered" data-hits="36" data-linenumber="40">
|
|
1330
|
+
<span class="hits">36</span>
|
|
1385
1331
|
|
|
1386
1332
|
<code class="ruby"> @token = options.delete(:token) || options.delete(:device)</code>
|
|
1387
1333
|
</li>
|
|
1388
1334
|
|
|
1389
|
-
<li class="covered" data-hits="
|
|
1390
|
-
<span class="hits">
|
|
1335
|
+
<li class="covered" data-hits="36" data-linenumber="41">
|
|
1336
|
+
<span class="hits">36</span>
|
|
1391
1337
|
|
|
1392
1338
|
<code class="ruby"> @alert = options.delete(:alert)</code>
|
|
1393
1339
|
</li>
|
|
1394
1340
|
|
|
1395
|
-
<li class="covered" data-hits="
|
|
1396
|
-
<span class="hits">
|
|
1341
|
+
<li class="covered" data-hits="36" data-linenumber="42">
|
|
1342
|
+
<span class="hits">36</span>
|
|
1397
1343
|
|
|
1398
1344
|
<code class="ruby"> @badge = options.delete(:badge)</code>
|
|
1399
1345
|
</li>
|
|
1400
1346
|
|
|
1401
|
-
<li class="covered" data-hits="
|
|
1402
|
-
<span class="hits">
|
|
1347
|
+
<li class="covered" data-hits="36" data-linenumber="43">
|
|
1348
|
+
<span class="hits">36</span>
|
|
1403
1349
|
|
|
1404
1350
|
<code class="ruby"> @sound = options.delete(:sound)</code>
|
|
1405
1351
|
</li>
|
|
1406
1352
|
|
|
1407
|
-
<li class="covered" data-hits="
|
|
1408
|
-
<span class="hits">
|
|
1353
|
+
<li class="covered" data-hits="36" data-linenumber="44">
|
|
1354
|
+
<span class="hits">36</span>
|
|
1409
1355
|
|
|
1410
1356
|
<code class="ruby"> @category = options.delete(:category)</code>
|
|
1411
1357
|
</li>
|
|
1412
1358
|
|
|
1413
|
-
<li class="covered" data-hits="
|
|
1414
|
-
<span class="hits">
|
|
1359
|
+
<li class="covered" data-hits="36" data-linenumber="45">
|
|
1360
|
+
<span class="hits">36</span>
|
|
1415
1361
|
|
|
1416
1362
|
<code class="ruby"> @expiry = options.delete(:expiry)</code>
|
|
1417
1363
|
</li>
|
|
1418
1364
|
|
|
1419
|
-
<li class="covered" data-hits="
|
|
1420
|
-
<span class="hits">
|
|
1365
|
+
<li class="covered" data-hits="36" data-linenumber="46">
|
|
1366
|
+
<span class="hits">36</span>
|
|
1421
1367
|
|
|
1422
1368
|
<code class="ruby"> @id = options.delete(:id)</code>
|
|
1423
1369
|
</li>
|
|
1424
1370
|
|
|
1425
|
-
<li class="covered" data-hits="
|
|
1426
|
-
<span class="hits">
|
|
1371
|
+
<li class="covered" data-hits="36" data-linenumber="47">
|
|
1372
|
+
<span class="hits">36</span>
|
|
1427
1373
|
|
|
1428
1374
|
<code class="ruby"> @priority = options.delete(:priority)</code>
|
|
1429
1375
|
</li>
|
|
1430
1376
|
|
|
1431
|
-
<li class="covered" data-hits="
|
|
1432
|
-
<span class="hits">
|
|
1377
|
+
<li class="covered" data-hits="36" data-linenumber="48">
|
|
1378
|
+
<span class="hits">36</span>
|
|
1433
1379
|
|
|
1434
1380
|
<code class="ruby"> @content_available = options.delete(:content_available)</code>
|
|
1435
1381
|
</li>
|
|
1436
1382
|
|
|
1437
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1383
|
+
<li class="never" data-hits="" data-linenumber="49">
|
|
1438
1384
|
|
|
1439
1385
|
|
|
1440
1386
|
<code class="ruby"></code>
|
|
1441
1387
|
</li>
|
|
1442
1388
|
|
|
1443
|
-
<li class="covered" data-hits="
|
|
1444
|
-
<span class="hits">
|
|
1389
|
+
<li class="covered" data-hits="36" data-linenumber="50">
|
|
1390
|
+
<span class="hits">36</span>
|
|
1445
1391
|
|
|
1446
1392
|
<code class="ruby"> @custom_data = options</code>
|
|
1447
1393
|
</li>
|
|
1448
1394
|
|
|
1449
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1395
|
+
<li class="never" data-hits="" data-linenumber="51">
|
|
1450
1396
|
|
|
1451
1397
|
|
|
1452
1398
|
<code class="ruby"> end</code>
|
|
1453
1399
|
</li>
|
|
1454
1400
|
|
|
1455
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1401
|
+
<li class="never" data-hits="" data-linenumber="52">
|
|
1456
1402
|
|
|
1457
1403
|
|
|
1458
1404
|
<code class="ruby"></code>
|
|
1459
1405
|
</li>
|
|
1460
1406
|
|
|
1461
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1407
|
+
<li class="covered" data-hits="1" data-linenumber="53">
|
|
1462
1408
|
<span class="hits">1</span>
|
|
1463
1409
|
|
|
1464
1410
|
<code class="ruby"> def payload</code>
|
|
1465
1411
|
</li>
|
|
1466
1412
|
|
|
1467
|
-
<li class="covered" data-hits="59" data-linenumber="
|
|
1413
|
+
<li class="covered" data-hits="59" data-linenumber="54">
|
|
1468
1414
|
<span class="hits">59</span>
|
|
1469
1415
|
|
|
1470
1416
|
<code class="ruby"> json = {}.merge(@custom_data || {}).inject({}){|h,(k,v)| h[k.to_s] = v; h}</code>
|
|
1471
1417
|
</li>
|
|
1472
1418
|
|
|
1473
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1419
|
+
<li class="never" data-hits="" data-linenumber="55">
|
|
1474
1420
|
|
|
1475
1421
|
|
|
1476
1422
|
<code class="ruby"></code>
|
|
1477
1423
|
</li>
|
|
1478
1424
|
|
|
1479
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1425
|
+
<li class="covered" data-hits="23" data-linenumber="56">
|
|
1480
1426
|
<span class="hits">23</span>
|
|
1481
1427
|
|
|
1482
1428
|
<code class="ruby"> json['aps'] ||= {}</code>
|
|
1483
1429
|
</li>
|
|
1484
1430
|
|
|
1485
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1431
|
+
<li class="covered" data-hits="23" data-linenumber="57">
|
|
1486
1432
|
<span class="hits">23</span>
|
|
1487
1433
|
|
|
1488
1434
|
<code class="ruby"> json['aps']['alert'] = @alert if @alert</code>
|
|
1489
1435
|
</li>
|
|
1490
1436
|
|
|
1491
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1437
|
+
<li class="covered" data-hits="23" data-linenumber="58">
|
|
1492
1438
|
<span class="hits">23</span>
|
|
1493
1439
|
|
|
1494
1440
|
<code class="ruby"> json['aps']['badge'] = @badge.to_i rescue 0 if @badge</code>
|
|
1495
1441
|
</li>
|
|
1496
1442
|
|
|
1497
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1443
|
+
<li class="covered" data-hits="23" data-linenumber="59">
|
|
1498
1444
|
<span class="hits">23</span>
|
|
1499
1445
|
|
|
1500
1446
|
<code class="ruby"> json['aps']['sound'] = @sound if @sound</code>
|
|
1501
1447
|
</li>
|
|
1502
1448
|
|
|
1503
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1449
|
+
<li class="covered" data-hits="23" data-linenumber="60">
|
|
1504
1450
|
<span class="hits">23</span>
|
|
1505
1451
|
|
|
1506
1452
|
<code class="ruby"> json['aps']['category'] = @category if @category</code>
|
|
1507
1453
|
</li>
|
|
1508
1454
|
|
|
1509
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1455
|
+
<li class="covered" data-hits="23" data-linenumber="61">
|
|
1510
1456
|
<span class="hits">23</span>
|
|
1511
1457
|
|
|
1512
1458
|
<code class="ruby"> json['aps']['content-available'] = 1 if @content_available</code>
|
|
1513
1459
|
</li>
|
|
1514
1460
|
|
|
1515
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1461
|
+
<li class="never" data-hits="" data-linenumber="62">
|
|
1516
1462
|
|
|
1517
1463
|
|
|
1518
1464
|
<code class="ruby"></code>
|
|
1519
1465
|
</li>
|
|
1520
1466
|
|
|
1521
|
-
<li class="covered" data-hits="23" data-linenumber="
|
|
1467
|
+
<li class="covered" data-hits="23" data-linenumber="63">
|
|
1522
1468
|
<span class="hits">23</span>
|
|
1523
1469
|
|
|
1524
1470
|
<code class="ruby"> json</code>
|
|
1525
1471
|
</li>
|
|
1526
1472
|
|
|
1527
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1473
|
+
<li class="never" data-hits="" data-linenumber="64">
|
|
1528
1474
|
|
|
1529
1475
|
|
|
1530
1476
|
<code class="ruby"> end</code>
|
|
1531
1477
|
</li>
|
|
1532
1478
|
|
|
1533
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1479
|
+
<li class="never" data-hits="" data-linenumber="65">
|
|
1534
1480
|
|
|
1535
1481
|
|
|
1536
1482
|
<code class="ruby"></code>
|
|
1537
1483
|
</li>
|
|
1538
1484
|
|
|
1539
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1485
|
+
<li class="covered" data-hits="1" data-linenumber="66">
|
|
1540
1486
|
<span class="hits">1</span>
|
|
1541
1487
|
|
|
1542
1488
|
<code class="ruby"> def message</code>
|
|
1543
1489
|
</li>
|
|
1544
1490
|
|
|
1545
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1491
|
+
<li class="covered" data-hits="15" data-linenumber="67">
|
|
1546
1492
|
<span class="hits">15</span>
|
|
1547
1493
|
|
|
1548
1494
|
<code class="ruby"> data = [device_token_item,</code>
|
|
1549
1495
|
</li>
|
|
1550
1496
|
|
|
1551
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1497
|
+
<li class="never" data-hits="" data-linenumber="68">
|
|
1552
1498
|
|
|
1553
1499
|
|
|
1554
1500
|
<code class="ruby"> payload_item,</code>
|
|
1555
1501
|
</li>
|
|
1556
1502
|
|
|
1557
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1503
|
+
<li class="never" data-hits="" data-linenumber="69">
|
|
1558
1504
|
|
|
1559
1505
|
|
|
1560
1506
|
<code class="ruby"> identifier_item,</code>
|
|
1561
1507
|
</li>
|
|
1562
1508
|
|
|
1563
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1509
|
+
<li class="never" data-hits="" data-linenumber="70">
|
|
1564
1510
|
|
|
1565
1511
|
|
|
1566
1512
|
<code class="ruby"> expiration_item,</code>
|
|
1567
1513
|
</li>
|
|
1568
1514
|
|
|
1569
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1515
|
+
<li class="never" data-hits="" data-linenumber="71">
|
|
1570
1516
|
|
|
1571
1517
|
|
|
1572
1518
|
<code class="ruby"> priority_item].compact.join</code>
|
|
1573
1519
|
</li>
|
|
1574
1520
|
|
|
1575
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1521
|
+
<li class="covered" data-hits="15" data-linenumber="72">
|
|
1576
1522
|
<span class="hits">15</span>
|
|
1577
1523
|
|
|
1578
1524
|
<code class="ruby"> [2, data.bytes.count, data].pack('cNa*')</code>
|
|
1579
1525
|
</li>
|
|
1580
1526
|
|
|
1581
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1527
|
+
<li class="never" data-hits="" data-linenumber="73">
|
|
1582
1528
|
|
|
1583
1529
|
|
|
1584
1530
|
<code class="ruby"> end</code>
|
|
1585
1531
|
</li>
|
|
1586
1532
|
|
|
1587
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1533
|
+
<li class="never" data-hits="" data-linenumber="74">
|
|
1588
1534
|
|
|
1589
1535
|
|
|
1590
1536
|
<code class="ruby"></code>
|
|
1591
1537
|
</li>
|
|
1592
1538
|
|
|
1593
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1539
|
+
<li class="covered" data-hits="1" data-linenumber="75">
|
|
1594
1540
|
<span class="hits">1</span>
|
|
1595
1541
|
|
|
1596
1542
|
<code class="ruby"> def mark_as_sent!</code>
|
|
1597
1543
|
</li>
|
|
1598
1544
|
|
|
1599
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
1545
|
+
<li class="covered" data-hits="2" data-linenumber="76">
|
|
1600
1546
|
<span class="hits">2</span>
|
|
1601
1547
|
|
|
1602
1548
|
<code class="ruby"> @sent_at = Time.now</code>
|
|
1603
1549
|
</li>
|
|
1604
1550
|
|
|
1605
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1551
|
+
<li class="never" data-hits="" data-linenumber="77">
|
|
1606
1552
|
|
|
1607
1553
|
|
|
1608
1554
|
<code class="ruby"> end</code>
|
|
1609
1555
|
</li>
|
|
1610
1556
|
|
|
1611
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1557
|
+
<li class="never" data-hits="" data-linenumber="78">
|
|
1612
1558
|
|
|
1613
1559
|
|
|
1614
1560
|
<code class="ruby"></code>
|
|
1615
1561
|
</li>
|
|
1616
1562
|
|
|
1617
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1563
|
+
<li class="covered" data-hits="1" data-linenumber="79">
|
|
1618
1564
|
<span class="hits">1</span>
|
|
1619
1565
|
|
|
1620
1566
|
<code class="ruby"> def mark_as_unsent!</code>
|
|
1621
1567
|
</li>
|
|
1622
1568
|
|
|
1623
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1569
|
+
<li class="covered" data-hits="1" data-linenumber="80">
|
|
1624
1570
|
<span class="hits">1</span>
|
|
1625
1571
|
|
|
1626
1572
|
<code class="ruby"> @sent_at = nil</code>
|
|
1627
1573
|
</li>
|
|
1628
1574
|
|
|
1629
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1575
|
+
<li class="never" data-hits="" data-linenumber="81">
|
|
1630
1576
|
|
|
1631
1577
|
|
|
1632
1578
|
<code class="ruby"> end</code>
|
|
1633
1579
|
</li>
|
|
1634
1580
|
|
|
1635
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1581
|
+
<li class="never" data-hits="" data-linenumber="82">
|
|
1636
1582
|
|
|
1637
1583
|
|
|
1638
1584
|
<code class="ruby"></code>
|
|
1639
1585
|
</li>
|
|
1640
1586
|
|
|
1641
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1587
|
+
<li class="covered" data-hits="1" data-linenumber="83">
|
|
1642
1588
|
<span class="hits">1</span>
|
|
1643
1589
|
|
|
1644
1590
|
<code class="ruby"> def sent?</code>
|
|
1645
1591
|
</li>
|
|
1646
1592
|
|
|
1647
|
-
<li class="covered" data-hits="3" data-linenumber="
|
|
1593
|
+
<li class="covered" data-hits="3" data-linenumber="84">
|
|
1648
1594
|
<span class="hits">3</span>
|
|
1649
1595
|
|
|
1650
1596
|
<code class="ruby"> !!@sent_at</code>
|
|
1651
1597
|
</li>
|
|
1652
1598
|
|
|
1653
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1599
|
+
<li class="never" data-hits="" data-linenumber="85">
|
|
1654
1600
|
|
|
1655
1601
|
|
|
1656
1602
|
<code class="ruby"> end</code>
|
|
1657
1603
|
</li>
|
|
1658
1604
|
|
|
1659
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1605
|
+
<li class="never" data-hits="" data-linenumber="86">
|
|
1660
1606
|
|
|
1661
1607
|
|
|
1662
1608
|
<code class="ruby"></code>
|
|
1663
1609
|
</li>
|
|
1664
1610
|
|
|
1665
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1611
|
+
<li class="covered" data-hits="1" data-linenumber="87">
|
|
1666
1612
|
<span class="hits">1</span>
|
|
1667
1613
|
|
|
1668
1614
|
<code class="ruby"> def valid?</code>
|
|
1669
1615
|
</li>
|
|
1670
1616
|
|
|
1671
|
-
<li class="missed" data-hits="0" data-linenumber="
|
|
1617
|
+
<li class="missed" data-hits="0" data-linenumber="88">
|
|
1672
1618
|
|
|
1673
1619
|
|
|
1674
1620
|
<code class="ruby"> payload.to_json.bytesize <= MAXIMUM_PAYLOAD_SIZE</code>
|
|
1675
1621
|
</li>
|
|
1676
1622
|
|
|
1677
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1623
|
+
<li class="never" data-hits="" data-linenumber="89">
|
|
1678
1624
|
|
|
1679
1625
|
|
|
1680
1626
|
<code class="ruby"> end</code>
|
|
1681
1627
|
</li>
|
|
1682
1628
|
|
|
1683
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1629
|
+
<li class="never" data-hits="" data-linenumber="90">
|
|
1684
1630
|
|
|
1685
1631
|
|
|
1686
1632
|
<code class="ruby"></code>
|
|
1687
1633
|
</li>
|
|
1688
1634
|
|
|
1689
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1635
|
+
<li class="covered" data-hits="1" data-linenumber="91">
|
|
1690
1636
|
<span class="hits">1</span>
|
|
1691
1637
|
|
|
1692
1638
|
<code class="ruby"> def error</code>
|
|
1693
1639
|
</li>
|
|
1694
1640
|
|
|
1695
|
-
<li class="
|
|
1696
|
-
|
|
1641
|
+
<li class="covered" data-hits="3" data-linenumber="92">
|
|
1642
|
+
<span class="hits">3</span>
|
|
1697
1643
|
|
|
1698
|
-
<code class="ruby"> APNSError.new(
|
|
1644
|
+
<code class="ruby"> APNSError.new(@apns_error_code) if @apns_error_code and @apns_error_code.nonzero?</code>
|
|
1699
1645
|
</li>
|
|
1700
1646
|
|
|
1701
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1647
|
+
<li class="never" data-hits="" data-linenumber="93">
|
|
1702
1648
|
|
|
1703
1649
|
|
|
1704
1650
|
<code class="ruby"> end</code>
|
|
1705
1651
|
</li>
|
|
1706
1652
|
|
|
1707
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1653
|
+
<li class="never" data-hits="" data-linenumber="94">
|
|
1708
1654
|
|
|
1709
1655
|
|
|
1710
1656
|
<code class="ruby"></code>
|
|
1711
1657
|
</li>
|
|
1712
1658
|
|
|
1713
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1659
|
+
<li class="covered" data-hits="1" data-linenumber="95">
|
|
1714
1660
|
<span class="hits">1</span>
|
|
1715
1661
|
|
|
1716
1662
|
<code class="ruby"> private</code>
|
|
1717
1663
|
</li>
|
|
1718
1664
|
|
|
1719
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1665
|
+
<li class="never" data-hits="" data-linenumber="96">
|
|
1720
1666
|
|
|
1721
1667
|
|
|
1722
1668
|
<code class="ruby"></code>
|
|
1723
1669
|
</li>
|
|
1724
1670
|
|
|
1725
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1671
|
+
<li class="covered" data-hits="1" data-linenumber="97">
|
|
1726
1672
|
<span class="hits">1</span>
|
|
1727
1673
|
|
|
1728
1674
|
<code class="ruby"> def device_token_item</code>
|
|
1729
1675
|
</li>
|
|
1730
1676
|
|
|
1731
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1677
|
+
<li class="covered" data-hits="15" data-linenumber="98">
|
|
1732
1678
|
<span class="hits">15</span>
|
|
1733
1679
|
|
|
1734
1680
|
<code class="ruby"> [1, 32, @token.gsub(/[<\s>]/, '')].pack('cnH64')</code>
|
|
1735
1681
|
</li>
|
|
1736
1682
|
|
|
1737
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1683
|
+
<li class="never" data-hits="" data-linenumber="99">
|
|
1738
1684
|
|
|
1739
1685
|
|
|
1740
1686
|
<code class="ruby"> end</code>
|
|
1741
1687
|
</li>
|
|
1742
1688
|
|
|
1743
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1689
|
+
<li class="never" data-hits="" data-linenumber="100">
|
|
1744
1690
|
|
|
1745
1691
|
|
|
1746
1692
|
<code class="ruby"></code>
|
|
1747
1693
|
</li>
|
|
1748
1694
|
|
|
1749
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1695
|
+
<li class="covered" data-hits="1" data-linenumber="101">
|
|
1750
1696
|
<span class="hits">1</span>
|
|
1751
1697
|
|
|
1752
1698
|
<code class="ruby"> def payload_item</code>
|
|
1753
1699
|
</li>
|
|
1754
1700
|
|
|
1755
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1701
|
+
<li class="covered" data-hits="15" data-linenumber="102">
|
|
1756
1702
|
<span class="hits">15</span>
|
|
1757
1703
|
|
|
1758
1704
|
<code class="ruby"> json = payload.to_json</code>
|
|
1759
1705
|
</li>
|
|
1760
1706
|
|
|
1761
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1707
|
+
<li class="covered" data-hits="15" data-linenumber="103">
|
|
1762
1708
|
<span class="hits">15</span>
|
|
1763
1709
|
|
|
1764
1710
|
<code class="ruby"> [2, json.bytes.count, json].pack('cna*')</code>
|
|
1765
1711
|
</li>
|
|
1766
1712
|
|
|
1767
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1713
|
+
<li class="never" data-hits="" data-linenumber="104">
|
|
1768
1714
|
|
|
1769
1715
|
|
|
1770
1716
|
<code class="ruby"> end</code>
|
|
1771
1717
|
</li>
|
|
1772
1718
|
|
|
1773
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1719
|
+
<li class="never" data-hits="" data-linenumber="105">
|
|
1774
1720
|
|
|
1775
1721
|
|
|
1776
1722
|
<code class="ruby"></code>
|
|
1777
1723
|
</li>
|
|
1778
1724
|
|
|
1779
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1725
|
+
<li class="covered" data-hits="1" data-linenumber="106">
|
|
1780
1726
|
<span class="hits">1</span>
|
|
1781
1727
|
|
|
1782
1728
|
<code class="ruby"> def identifier_item</code>
|
|
1783
1729
|
</li>
|
|
1784
1730
|
|
|
1785
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1731
|
+
<li class="covered" data-hits="15" data-linenumber="107">
|
|
1786
1732
|
<span class="hits">15</span>
|
|
1787
1733
|
|
|
1788
1734
|
<code class="ruby"> [3, 4, @id].pack('cnN') unless @id.nil?</code>
|
|
1789
1735
|
</li>
|
|
1790
1736
|
|
|
1791
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1737
|
+
<li class="never" data-hits="" data-linenumber="108">
|
|
1792
1738
|
|
|
1793
1739
|
|
|
1794
1740
|
<code class="ruby"> end</code>
|
|
1795
1741
|
</li>
|
|
1796
1742
|
|
|
1797
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1743
|
+
<li class="never" data-hits="" data-linenumber="109">
|
|
1798
1744
|
|
|
1799
1745
|
|
|
1800
1746
|
<code class="ruby"></code>
|
|
1801
1747
|
</li>
|
|
1802
1748
|
|
|
1803
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1749
|
+
<li class="covered" data-hits="1" data-linenumber="110">
|
|
1804
1750
|
<span class="hits">1</span>
|
|
1805
1751
|
|
|
1806
1752
|
<code class="ruby"> def expiration_item</code>
|
|
1807
1753
|
</li>
|
|
1808
1754
|
|
|
1809
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1755
|
+
<li class="covered" data-hits="15" data-linenumber="111">
|
|
1810
1756
|
<span class="hits">15</span>
|
|
1811
1757
|
|
|
1812
1758
|
<code class="ruby"> [4, 4, @expiry.to_i].pack('cnN') unless @expiry.nil?</code>
|
|
1813
1759
|
</li>
|
|
1814
1760
|
|
|
1815
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1761
|
+
<li class="never" data-hits="" data-linenumber="112">
|
|
1816
1762
|
|
|
1817
1763
|
|
|
1818
1764
|
<code class="ruby"> end</code>
|
|
1819
1765
|
</li>
|
|
1820
1766
|
|
|
1821
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1767
|
+
<li class="never" data-hits="" data-linenumber="113">
|
|
1822
1768
|
|
|
1823
1769
|
|
|
1824
1770
|
<code class="ruby"></code>
|
|
1825
1771
|
</li>
|
|
1826
1772
|
|
|
1827
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
1773
|
+
<li class="covered" data-hits="1" data-linenumber="114">
|
|
1828
1774
|
<span class="hits">1</span>
|
|
1829
1775
|
|
|
1830
1776
|
<code class="ruby"> def priority_item</code>
|
|
1831
1777
|
</li>
|
|
1832
1778
|
|
|
1833
|
-
<li class="covered" data-hits="15" data-linenumber="
|
|
1779
|
+
<li class="covered" data-hits="15" data-linenumber="115">
|
|
1834
1780
|
<span class="hits">15</span>
|
|
1835
1781
|
|
|
1836
1782
|
<code class="ruby"> [5, 1, @priority].pack('cnc') unless @priority.nil?</code>
|
|
1837
1783
|
</li>
|
|
1838
1784
|
|
|
1839
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1785
|
+
<li class="never" data-hits="" data-linenumber="116">
|
|
1840
1786
|
|
|
1841
1787
|
|
|
1842
1788
|
<code class="ruby"> end</code>
|
|
1843
1789
|
</li>
|
|
1844
1790
|
|
|
1845
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1791
|
+
<li class="never" data-hits="" data-linenumber="117">
|
|
1846
1792
|
|
|
1847
1793
|
|
|
1848
1794
|
<code class="ruby"> end</code>
|
|
1849
1795
|
</li>
|
|
1850
1796
|
|
|
1851
|
-
<li class="never" data-hits="" data-linenumber="
|
|
1797
|
+
<li class="never" data-hits="" data-linenumber="118">
|
|
1852
1798
|
|
|
1853
1799
|
|
|
1854
1800
|
<code class="ruby">end</code>
|