venice 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -18
- data/README.md +1 -1
- data/Rakefile +4 -7
- data/coverage/assets/{0.10.0 → 0.10.2}/application.css +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/application.js +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/border.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/controls.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/loading.gif +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/colorbox/loading_background.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/favicon_green.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/favicon_red.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/favicon_yellow.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/loading.gif +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/magnify.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/{0.10.0 → 0.10.2}/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/index.html +874 -320
- data/lib/venice/in_app_receipt.rb +1 -1
- data/lib/venice/pending_renewal_info.rb +66 -0
- data/lib/venice/receipt.rb +13 -1
- data/lib/venice/version.rb +1 -1
- data/lib/venice.rb +1 -0
- data/spec/pending_renewal_info_spec.rb +41 -0
- data/spec/receipt_spec.rb +24 -1
- data/spec/spec_helper.rb +1 -0
- data/venice.gemspec +2 -1
- metadata +46 -29
data/coverage/index.html
CHANGED
@@ -3,38 +3,38 @@
|
|
3
3
|
<head>
|
4
4
|
<title>Code coverage for Venice</title>
|
5
5
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
-
<script src='./assets/0.10.
|
7
|
-
<link href='./assets/0.10.
|
8
|
-
<link rel="shortcut icon" type="image/png" href="./assets/0.10.
|
9
|
-
<link rel="icon" type="image/png" href="./assets/0.10.
|
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_yellow.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.
|
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="
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2017-10-11T13:01:40+03:00">2017-10-11T13:01:40+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="yellow">
|
24
|
+
(<span class="covered_percent"><span class="yellow">86.01%</span></span>
|
25
25
|
covered at
|
26
26
|
<span class="covered_strength">
|
27
27
|
<span class="green">
|
28
|
-
3.
|
28
|
+
3.25
|
29
29
|
</span>
|
30
30
|
</span> hits/line)
|
31
31
|
</h2>
|
32
32
|
<a name="AllFiles"></a>
|
33
33
|
<div>
|
34
|
-
<b>
|
35
|
-
<b>
|
36
|
-
<span class="green"><b>
|
37
|
-
<span class="red"><b>
|
34
|
+
<b>6</b> files in total.
|
35
|
+
<b>193</b> relevant lines.
|
36
|
+
<span class="green"><b>166</b> lines covered</span> and
|
37
|
+
<span class="red"><b>27</b> lines missed </span>
|
38
38
|
</div>
|
39
39
|
<table class="file_list">
|
40
40
|
<thead>
|
@@ -51,17 +51,17 @@
|
|
51
51
|
<tbody>
|
52
52
|
|
53
53
|
<tr>
|
54
|
-
<td class="strong"><a href="#
|
54
|
+
<td class="strong"><a href="#175f5aad0793e9750ae8298148ee6c32946b63ae" class="src_link" title="lib/venice.rb">lib/venice.rb</a></td>
|
55
55
|
<td class="green strong">100.0 %</td>
|
56
|
-
<td>
|
57
|
-
<td>
|
58
|
-
<td>
|
56
|
+
<td>5</td>
|
57
|
+
<td>5</td>
|
58
|
+
<td>5</td>
|
59
59
|
<td>0</td>
|
60
60
|
<td>1.0</td>
|
61
61
|
</tr>
|
62
62
|
|
63
63
|
<tr>
|
64
|
-
<td class="strong"><a href="#
|
64
|
+
<td class="strong"><a href="#d79fadfe1306623a10822709e775b8c021f4fc4e" class="src_link" title="lib/venice/client.rb">lib/venice/client.rb</a></td>
|
65
65
|
<td class="green strong">91.67 %</td>
|
66
66
|
<td>85</td>
|
67
67
|
<td>48</td>
|
@@ -71,23 +71,43 @@
|
|
71
71
|
</tr>
|
72
72
|
|
73
73
|
<tr>
|
74
|
-
<td class="strong"><a href="#
|
74
|
+
<td class="strong"><a href="#080477ce0f6d0348fc87b2c6eb5ce94e3b5da4cd" class="src_link" title="lib/venice/in_app_receipt.rb">lib/venice/in_app_receipt.rb</a></td>
|
75
75
|
<td class="green strong">97.06 %</td>
|
76
76
|
<td>92</td>
|
77
77
|
<td>34</td>
|
78
78
|
<td>33</td>
|
79
79
|
<td>1</td>
|
80
|
-
<td>7.
|
80
|
+
<td>7.9</td>
|
81
|
+
</tr>
|
82
|
+
|
83
|
+
<tr>
|
84
|
+
<td class="strong"><a href="#17a12c36d26ef47e82b8c4a1684d8e945c9a9e89" class="src_link" title="lib/venice/pending_renewal_info.rb">lib/venice/pending_renewal_info.rb</a></td>
|
85
|
+
<td class="green strong">95.65 %</td>
|
86
|
+
<td>66</td>
|
87
|
+
<td>23</td>
|
88
|
+
<td>22</td>
|
89
|
+
<td>1</td>
|
90
|
+
<td>3.1</td>
|
91
|
+
</tr>
|
92
|
+
|
93
|
+
<tr>
|
94
|
+
<td class="strong"><a href="#10dfdb14e321a7bb364075307e5a80a2a62317af" class="src_link" title="lib/venice/receipt.rb">lib/venice/receipt.rb</a></td>
|
95
|
+
<td class="red strong">74.07 %</td>
|
96
|
+
<td>159</td>
|
97
|
+
<td>81</td>
|
98
|
+
<td>60</td>
|
99
|
+
<td>21</td>
|
100
|
+
<td>2.1</td>
|
81
101
|
</tr>
|
82
102
|
|
83
103
|
<tr>
|
84
|
-
<td class="strong"><a href="#
|
85
|
-
<td class="
|
86
|
-
<td>
|
87
|
-
<td>
|
88
|
-
<td>
|
89
|
-
<td>
|
90
|
-
<td>1.
|
104
|
+
<td class="strong"><a href="#cb684cfb744e20e9f55e0ef69140ba65fee90e3b" class="src_link" title="lib/venice/version.rb">lib/venice/version.rb</a></td>
|
105
|
+
<td class="green strong">100.0 %</td>
|
106
|
+
<td>3</td>
|
107
|
+
<td>2</td>
|
108
|
+
<td>2</td>
|
109
|
+
<td>0</td>
|
110
|
+
<td>1.0</td>
|
91
111
|
</tr>
|
92
112
|
|
93
113
|
</tbody>
|
@@ -99,20 +119,20 @@
|
|
99
119
|
</div>
|
100
120
|
|
101
121
|
<div id="footer">
|
102
|
-
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.
|
103
|
-
and simplecov-html v0.10.
|
122
|
+
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.15.1
|
123
|
+
and simplecov-html v0.10.2<br/>
|
104
124
|
using RSpec
|
105
125
|
</div>
|
106
126
|
|
107
127
|
<div class="source_files">
|
108
128
|
|
109
|
-
<div class="source_table" id="
|
129
|
+
<div class="source_table" id="175f5aad0793e9750ae8298148ee6c32946b63ae">
|
110
130
|
<div class="header">
|
111
131
|
<h3>lib/venice.rb</h3>
|
112
132
|
<h4><span class="green">100.0 %</span> covered</h4>
|
113
133
|
<div>
|
114
|
-
<b>
|
115
|
-
<span class="green"><b>
|
134
|
+
<b>5</b> relevant lines.
|
135
|
+
<span class="green"><b>5</b> lines covered</span> and
|
116
136
|
<span class="red"><b>0</b> lines missed.</span>
|
117
137
|
</div>
|
118
138
|
</div>
|
@@ -144,11 +164,18 @@
|
|
144
164
|
<code class="ruby">require 'venice/receipt'</code>
|
145
165
|
</li>
|
146
166
|
|
167
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
168
|
+
<span class="hits">1</span>
|
169
|
+
|
170
|
+
<code class="ruby">require 'venice/pending_renewal_info'</code>
|
171
|
+
</li>
|
172
|
+
|
147
173
|
</ol>
|
148
174
|
</pre>
|
149
175
|
</div>
|
176
|
+
|
150
177
|
|
151
|
-
<div class="source_table" id="
|
178
|
+
<div class="source_table" id="d79fadfe1306623a10822709e775b8c021f4fc4e">
|
152
179
|
<div class="header">
|
153
180
|
<h3>lib/venice/client.rb</h3>
|
154
181
|
<h4><span class="green">91.67 %</span> covered</h4>
|
@@ -675,8 +702,9 @@
|
|
675
702
|
</ol>
|
676
703
|
</pre>
|
677
704
|
</div>
|
705
|
+
|
678
706
|
|
679
|
-
<div class="source_table" id="
|
707
|
+
<div class="source_table" id="080477ce0f6d0348fc87b2c6eb5ce94e3b5da4cd">
|
680
708
|
<div class="header">
|
681
709
|
<h3>lib/venice/in_app_receipt.rb</h3>
|
682
710
|
<h4><span class="green">97.06 %</span> covered</h4>
|
@@ -966,38 +994,38 @@
|
|
966
994
|
<code class="ruby"> def initialize(attributes = {})</code>
|
967
995
|
</li>
|
968
996
|
|
969
|
-
<li class="covered" data-hits="
|
970
|
-
<span class="hits">
|
997
|
+
<li class="covered" data-hits="24" data-linenumber="47">
|
998
|
+
<span class="hits">24</span>
|
971
999
|
|
972
1000
|
<code class="ruby"> @quantity = Integer(attributes['quantity']) if attributes['quantity']</code>
|
973
1001
|
</li>
|
974
1002
|
|
975
|
-
<li class="covered" data-hits="
|
976
|
-
<span class="hits">
|
1003
|
+
<li class="covered" data-hits="24" data-linenumber="48">
|
1004
|
+
<span class="hits">24</span>
|
977
1005
|
|
978
1006
|
<code class="ruby"> @product_id = attributes['product_id']</code>
|
979
1007
|
</li>
|
980
1008
|
|
981
|
-
<li class="covered" data-hits="
|
982
|
-
<span class="hits">
|
1009
|
+
<li class="covered" data-hits="24" data-linenumber="49">
|
1010
|
+
<span class="hits">24</span>
|
983
1011
|
|
984
1012
|
<code class="ruby"> @transaction_id = attributes['transaction_id']</code>
|
985
1013
|
</li>
|
986
1014
|
|
987
|
-
<li class="covered" data-hits="
|
988
|
-
<span class="hits">
|
1015
|
+
<li class="covered" data-hits="24" data-linenumber="50">
|
1016
|
+
<span class="hits">24</span>
|
989
1017
|
|
990
1018
|
<code class="ruby"> @purchased_at = DateTime.parse(attributes['purchase_date']) if attributes['purchase_date']</code>
|
991
1019
|
</li>
|
992
1020
|
|
993
|
-
<li class="covered" data-hits="
|
994
|
-
<span class="hits">
|
1021
|
+
<li class="covered" data-hits="24" data-linenumber="51">
|
1022
|
+
<span class="hits">24</span>
|
995
1023
|
|
996
1024
|
<code class="ruby"> @app_item_id = attributes['app_item_id']</code>
|
997
1025
|
</li>
|
998
1026
|
|
999
|
-
<li class="covered" data-hits="
|
1000
|
-
<span class="hits">
|
1027
|
+
<li class="covered" data-hits="24" data-linenumber="52">
|
1028
|
+
<span class="hits">24</span>
|
1001
1029
|
|
1002
1030
|
<code class="ruby"> @version_external_identifier = attributes['version_external_identifier']</code>
|
1003
1031
|
</li>
|
@@ -1014,8 +1042,8 @@
|
|
1014
1042
|
<code class="ruby"> # expires_date is in ms since the Epoch, Time.at expects seconds</code>
|
1015
1043
|
</li>
|
1016
1044
|
|
1017
|
-
<li class="covered" data-hits="
|
1018
|
-
<span class="hits">
|
1045
|
+
<li class="covered" data-hits="24" data-linenumber="55">
|
1046
|
+
<span class="hits">24</span>
|
1019
1047
|
|
1020
1048
|
<code class="ruby"> @expires_at = Time.at(attributes['expires_date_ms'].to_i / 1000) if attributes['expires_date_ms']</code>
|
1021
1049
|
</li>
|
@@ -1032,10 +1060,10 @@
|
|
1032
1060
|
<code class="ruby"> # cancellation_date is in ms since the Epoch, Time.at expects seconds</code>
|
1033
1061
|
</li>
|
1034
1062
|
|
1035
|
-
<li class="covered" data-hits="
|
1036
|
-
<span class="hits">
|
1063
|
+
<li class="covered" data-hits="24" data-linenumber="58">
|
1064
|
+
<span class="hits">24</span>
|
1037
1065
|
|
1038
|
-
<code class="ruby"> @
|
1066
|
+
<code class="ruby"> @cancellation_at = Time.at(attributes['cancellation_date_ms'].to_i / 1000) if attributes['cancellation_date_ms']</code>
|
1039
1067
|
</li>
|
1040
1068
|
|
1041
1069
|
<li class="never" data-hits="" data-linenumber="59">
|
@@ -1044,14 +1072,14 @@
|
|
1044
1072
|
<code class="ruby"></code>
|
1045
1073
|
</li>
|
1046
1074
|
|
1047
|
-
<li class="covered" data-hits="
|
1048
|
-
<span class="hits">
|
1075
|
+
<li class="covered" data-hits="24" data-linenumber="60">
|
1076
|
+
<span class="hits">24</span>
|
1049
1077
|
|
1050
1078
|
<code class="ruby"> if attributes['original_transaction_id'] || attributes['original_purchase_date']</code>
|
1051
1079
|
</li>
|
1052
1080
|
|
1053
|
-
<li class="covered" data-hits="
|
1054
|
-
<span class="hits">
|
1081
|
+
<li class="covered" data-hits="12" data-linenumber="61">
|
1082
|
+
<span class="hits">12</span>
|
1055
1083
|
|
1056
1084
|
<code class="ruby"> original_attributes = {</code>
|
1057
1085
|
</li>
|
@@ -1080,8 +1108,8 @@
|
|
1080
1108
|
<code class="ruby"></code>
|
1081
1109
|
</li>
|
1082
1110
|
|
1083
|
-
<li class="covered" data-hits="
|
1084
|
-
<span class="hits">
|
1111
|
+
<li class="covered" data-hits="12" data-linenumber="66">
|
1112
|
+
<span class="hits">12</span>
|
1085
1113
|
|
1086
1114
|
<code class="ruby"> self.original = InAppReceipt.new(original_attributes)</code>
|
1087
1115
|
</li>
|
@@ -1140,20 +1168,20 @@
|
|
1140
1168
|
<code class="ruby"> :transaction_id => @transaction_id,</code>
|
1141
1169
|
</li>
|
1142
1170
|
|
1143
|
-
<li class="covered" data-hits="
|
1144
|
-
<span class="hits">
|
1171
|
+
<li class="covered" data-hits="2" data-linenumber="76">
|
1172
|
+
<span class="hits">2</span>
|
1145
1173
|
|
1146
1174
|
<code class="ruby"> :purchase_date => (@purchased_at.httpdate rescue nil),</code>
|
1147
1175
|
</li>
|
1148
1176
|
|
1149
|
-
<li class="covered" data-hits="
|
1150
|
-
<span class="hits">
|
1177
|
+
<li class="covered" data-hits="2" data-linenumber="77">
|
1178
|
+
<span class="hits">2</span>
|
1151
1179
|
|
1152
1180
|
<code class="ruby"> :original_transaction_id => (@original.transaction_id rescue nil),</code>
|
1153
1181
|
</li>
|
1154
1182
|
|
1155
|
-
<li class="covered" data-hits="
|
1156
|
-
<span class="hits">
|
1183
|
+
<li class="covered" data-hits="2" data-linenumber="78">
|
1184
|
+
<span class="hits">2</span>
|
1157
1185
|
|
1158
1186
|
<code class="ruby"> :original_purchase_date => (@original.purchased_at.httpdate rescue nil),</code>
|
1159
1187
|
</li>
|
@@ -1170,20 +1198,20 @@
|
|
1170
1198
|
<code class="ruby"> :version_external_identifier => @version_external_identifier,</code>
|
1171
1199
|
</li>
|
1172
1200
|
|
1173
|
-
<li class="covered" data-hits="
|
1174
|
-
<span class="hits">
|
1201
|
+
<li class="covered" data-hits="2" data-linenumber="81">
|
1202
|
+
<span class="hits">2</span>
|
1175
1203
|
|
1176
1204
|
<code class="ruby"> :expires_at => (@expires_at.httpdate rescue nil),</code>
|
1177
1205
|
</li>
|
1178
1206
|
|
1179
|
-
<li class="covered" data-hits="
|
1180
|
-
<span class="hits">
|
1207
|
+
<li class="covered" data-hits="2" data-linenumber="82">
|
1208
|
+
<span class="hits">2</span>
|
1181
1209
|
|
1182
1210
|
<code class="ruby"> :cancellation_at => (@cancellation_at.httpdate rescue nil)</code>
|
1183
1211
|
</li>
|
1184
1212
|
|
1185
|
-
<li class="covered" data-hits="
|
1186
|
-
<span class="hits">
|
1213
|
+
<li class="covered" data-hits="2" data-linenumber="83">
|
1214
|
+
<span class="hits">2</span>
|
1187
1215
|
|
1188
1216
|
<code class="ruby"> }</code>
|
1189
1217
|
</li>
|
@@ -1245,15 +1273,16 @@
|
|
1245
1273
|
</ol>
|
1246
1274
|
</pre>
|
1247
1275
|
</div>
|
1276
|
+
|
1248
1277
|
|
1249
|
-
<div class="source_table" id="
|
1278
|
+
<div class="source_table" id="17a12c36d26ef47e82b8c4a1684d8e945c9a9e89">
|
1250
1279
|
<div class="header">
|
1251
|
-
<h3>lib/venice/
|
1252
|
-
<h4><span class="
|
1280
|
+
<h3>lib/venice/pending_renewal_info.rb</h3>
|
1281
|
+
<h4><span class="green">95.65 %</span> covered</h4>
|
1253
1282
|
<div>
|
1254
|
-
<b>
|
1255
|
-
<span class="green"><b>
|
1256
|
-
<span class="red"><b>
|
1283
|
+
<b>23</b> relevant lines.
|
1284
|
+
<span class="green"><b>22</b> lines covered</span> and
|
1285
|
+
<span class="red"><b>1</b> lines missed.</span>
|
1257
1286
|
</div>
|
1258
1287
|
</div>
|
1259
1288
|
|
@@ -1263,37 +1292,37 @@
|
|
1263
1292
|
<li class="covered" data-hits="1" data-linenumber="1">
|
1264
1293
|
<span class="hits">1</span>
|
1265
1294
|
|
1266
|
-
<code class="ruby">
|
1295
|
+
<code class="ruby">module Venice</code>
|
1267
1296
|
</li>
|
1268
1297
|
|
1269
|
-
<li class="
|
1270
|
-
|
1298
|
+
<li class="covered" data-hits="1" data-linenumber="2">
|
1299
|
+
<span class="hits">1</span>
|
1271
1300
|
|
1272
|
-
<code class="ruby"
|
1301
|
+
<code class="ruby"> class PendingRenewalInfo</code>
|
1273
1302
|
</li>
|
1274
1303
|
|
1275
|
-
<li class="
|
1276
|
-
<span class="hits">1</span>
|
1304
|
+
<li class="never" data-hits="" data-linenumber="3">
|
1277
1305
|
|
1278
|
-
|
1306
|
+
|
1307
|
+
<code class="ruby"></code>
|
1279
1308
|
</li>
|
1280
1309
|
|
1281
|
-
<li class="
|
1282
|
-
<span class="hits">1</span>
|
1310
|
+
<li class="never" data-hits="" data-linenumber="4">
|
1283
1311
|
|
1284
|
-
|
1312
|
+
|
1313
|
+
<code class="ruby"> # For an expired subscription, the reason for the subscription expiration.</code>
|
1285
1314
|
</li>
|
1286
1315
|
|
1287
1316
|
<li class="never" data-hits="" data-linenumber="5">
|
1288
1317
|
|
1289
1318
|
|
1290
|
-
<code class="ruby"> #
|
1319
|
+
<code class="ruby"> # This key is only present for a receipt containing an expired auto-renewable subscription. </code>
|
1291
1320
|
</li>
|
1292
1321
|
|
1293
|
-
<li class="
|
1294
|
-
|
1322
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
1323
|
+
<span class="hits">1</span>
|
1295
1324
|
|
1296
|
-
<code class="ruby">
|
1325
|
+
<code class="ruby"> attr_reader :expiration_intent</code>
|
1297
1326
|
</li>
|
1298
1327
|
|
1299
1328
|
<li class="never" data-hits="" data-linenumber="7">
|
@@ -1305,67 +1334,67 @@
|
|
1305
1334
|
<li class="never" data-hits="" data-linenumber="8">
|
1306
1335
|
|
1307
1336
|
|
1308
|
-
<code class="ruby"> # The
|
1337
|
+
<code class="ruby"> # The current renewal status for the auto-renewable subscription.</code>
|
1309
1338
|
</li>
|
1310
1339
|
|
1311
|
-
<li class="
|
1312
|
-
<span class="hits">1</span>
|
1340
|
+
<li class="never" data-hits="" data-linenumber="9">
|
1313
1341
|
|
1314
|
-
|
1342
|
+
|
1343
|
+
<code class="ruby"> # This key is only present for auto-renewable subscription receipts, for active or expired subscriptions</code>
|
1315
1344
|
</li>
|
1316
1345
|
|
1317
|
-
<li class="
|
1318
|
-
|
1346
|
+
<li class="covered" data-hits="1" data-linenumber="10">
|
1347
|
+
<span class="hits">1</span>
|
1319
1348
|
|
1320
|
-
<code class="ruby"
|
1349
|
+
<code class="ruby"> attr_reader :auto_renew_status</code>
|
1321
1350
|
</li>
|
1322
1351
|
|
1323
1352
|
<li class="never" data-hits="" data-linenumber="11">
|
1324
1353
|
|
1325
1354
|
|
1326
|
-
<code class="ruby"
|
1355
|
+
<code class="ruby"></code>
|
1327
1356
|
</li>
|
1328
1357
|
|
1329
|
-
<li class="
|
1330
|
-
<span class="hits">1</span>
|
1358
|
+
<li class="never" data-hits="" data-linenumber="12">
|
1331
1359
|
|
1332
|
-
|
1360
|
+
|
1361
|
+
<code class="ruby"> # The current renewal preference for the auto-renewable subscription.</code>
|
1333
1362
|
</li>
|
1334
1363
|
|
1335
1364
|
<li class="never" data-hits="" data-linenumber="13">
|
1336
1365
|
|
1337
1366
|
|
1338
|
-
<code class="ruby"
|
1367
|
+
<code class="ruby"> # The value for this key corresponds to the productIdentifier property of the product that the customer’s subscription renews.</code>
|
1339
1368
|
</li>
|
1340
1369
|
|
1341
|
-
<li class="
|
1342
|
-
|
1370
|
+
<li class="covered" data-hits="1" data-linenumber="14">
|
1371
|
+
<span class="hits">1</span>
|
1343
1372
|
|
1344
|
-
<code class="ruby">
|
1373
|
+
<code class="ruby"> attr_reader :auto_renew_product_id</code>
|
1345
1374
|
</li>
|
1346
1375
|
|
1347
|
-
<li class="
|
1348
|
-
<span class="hits">1</span>
|
1376
|
+
<li class="never" data-hits="" data-linenumber="15">
|
1349
1377
|
|
1350
|
-
|
1378
|
+
|
1379
|
+
<code class="ruby"></code>
|
1351
1380
|
</li>
|
1352
1381
|
|
1353
1382
|
<li class="never" data-hits="" data-linenumber="16">
|
1354
1383
|
|
1355
1384
|
|
1356
|
-
<code class="ruby"
|
1385
|
+
<code class="ruby"> # For an expired subscription, whether or not Apple is still attempting to automatically renew the subscription.</code>
|
1357
1386
|
</li>
|
1358
1387
|
|
1359
1388
|
<li class="never" data-hits="" data-linenumber="17">
|
1360
1389
|
|
1361
1390
|
|
1362
|
-
<code class="ruby"> #
|
1391
|
+
<code class="ruby"> # If the customer’s subscription failed to renew because the App Store was unable to complete the transaction, this value will reflect whether or not the App Store is still trying to renew the subscription.</code>
|
1363
1392
|
</li>
|
1364
1393
|
|
1365
1394
|
<li class="covered" data-hits="1" data-linenumber="18">
|
1366
1395
|
<span class="hits">1</span>
|
1367
1396
|
|
1368
|
-
<code class="ruby"> attr_reader :
|
1397
|
+
<code class="ruby"> attr_reader :is_in_billing_retry_period</code>
|
1369
1398
|
</li>
|
1370
1399
|
|
1371
1400
|
<li class="never" data-hits="" data-linenumber="19">
|
@@ -1377,67 +1406,67 @@
|
|
1377
1406
|
<li class="never" data-hits="" data-linenumber="20">
|
1378
1407
|
|
1379
1408
|
|
1380
|
-
<code class="ruby"> # The
|
1409
|
+
<code class="ruby"> # The product identifier of the item that was purchased.</code>
|
1381
1410
|
</li>
|
1382
1411
|
|
1383
|
-
<li class="
|
1384
|
-
<span class="hits">1</span>
|
1412
|
+
<li class="never" data-hits="" data-linenumber="21">
|
1385
1413
|
|
1386
|
-
|
1414
|
+
|
1415
|
+
<code class="ruby"> # This value corresponds to the productIdentifier property of the SKPayment object stored in the transaction’s payment property.</code>
|
1387
1416
|
</li>
|
1388
1417
|
|
1389
|
-
<li class="
|
1390
|
-
|
1418
|
+
<li class="covered" data-hits="1" data-linenumber="22">
|
1419
|
+
<span class="hits">1</span>
|
1391
1420
|
|
1392
|
-
<code class="ruby"
|
1421
|
+
<code class="ruby"> attr_reader :product_id</code>
|
1393
1422
|
</li>
|
1394
1423
|
|
1395
1424
|
<li class="never" data-hits="" data-linenumber="23">
|
1396
1425
|
|
1397
1426
|
|
1398
|
-
<code class="ruby"
|
1427
|
+
<code class="ruby"></code>
|
1399
1428
|
</li>
|
1400
1429
|
|
1401
|
-
<li class="
|
1402
|
-
<span class="hits">1</span>
|
1430
|
+
<li class="never" data-hits="" data-linenumber="24">
|
1403
1431
|
|
1404
|
-
|
1432
|
+
|
1433
|
+
<code class="ruby"> # The current price consent status for a subscription price increase</code>
|
1405
1434
|
</li>
|
1406
1435
|
|
1407
1436
|
<li class="never" data-hits="" data-linenumber="25">
|
1408
1437
|
|
1409
1438
|
|
1410
|
-
<code class="ruby"
|
1439
|
+
<code class="ruby"> # This key is only present for auto-renewable subscription receipts if the subscription price was increased without keeping the existing price for active subscribers</code>
|
1411
1440
|
</li>
|
1412
1441
|
|
1413
|
-
<li class="
|
1414
|
-
|
1442
|
+
<li class="covered" data-hits="1" data-linenumber="26">
|
1443
|
+
<span class="hits">1</span>
|
1415
1444
|
|
1416
|
-
<code class="ruby">
|
1445
|
+
<code class="ruby"> attr_reader :price_consent_status</code>
|
1417
1446
|
</li>
|
1418
1447
|
|
1419
|
-
<li class="
|
1420
|
-
<span class="hits">1</span>
|
1448
|
+
<li class="never" data-hits="" data-linenumber="27">
|
1421
1449
|
|
1422
|
-
|
1450
|
+
|
1451
|
+
<code class="ruby"></code>
|
1423
1452
|
</li>
|
1424
1453
|
|
1425
|
-
<li class="
|
1426
|
-
<span class="hits">1</span>
|
1454
|
+
<li class="never" data-hits="" data-linenumber="28">
|
1427
1455
|
|
1428
|
-
|
1456
|
+
|
1457
|
+
<code class="ruby"> # For a transaction that was cancelled, the reason for cancellation.</code>
|
1429
1458
|
</li>
|
1430
1459
|
|
1431
|
-
<li class="
|
1432
|
-
<span class="hits">1</span>
|
1460
|
+
<li class="never" data-hits="" data-linenumber="29">
|
1433
1461
|
|
1434
|
-
|
1462
|
+
|
1463
|
+
<code class="ruby"> # Use this value along with the cancellation date to identify possible issues in your app that may lead customers to contact Apple customer support.</code>
|
1435
1464
|
</li>
|
1436
1465
|
|
1437
1466
|
<li class="covered" data-hits="1" data-linenumber="30">
|
1438
1467
|
<span class="hits">1</span>
|
1439
1468
|
|
1440
|
-
<code class="ruby"> attr_reader :
|
1469
|
+
<code class="ruby"> attr_reader :cancellation_reason</code>
|
1441
1470
|
</li>
|
1442
1471
|
|
1443
1472
|
<li class="never" data-hits="" data-linenumber="31">
|
@@ -1449,31 +1478,31 @@
|
|
1449
1478
|
<li class="never" data-hits="" data-linenumber="32">
|
1450
1479
|
|
1451
1480
|
|
1452
|
-
<code class="ruby"
|
1481
|
+
<code class="ruby"></code>
|
1453
1482
|
</li>
|
1454
1483
|
|
1455
1484
|
<li class="covered" data-hits="1" data-linenumber="33">
|
1456
1485
|
<span class="hits">1</span>
|
1457
1486
|
|
1458
|
-
<code class="ruby">
|
1487
|
+
<code class="ruby"> def initialize(attributes)</code>
|
1459
1488
|
</li>
|
1460
1489
|
|
1461
|
-
<li class="
|
1462
|
-
|
1490
|
+
<li class="covered" data-hits="7" data-linenumber="34">
|
1491
|
+
<span class="hits">7</span>
|
1463
1492
|
|
1464
|
-
<code class="ruby"
|
1493
|
+
<code class="ruby"> @expiration_intent = Integer(attributes['expiration_intent']) if attributes['expiration_intent']</code>
|
1465
1494
|
</li>
|
1466
1495
|
|
1467
|
-
<li class="
|
1496
|
+
<li class="covered" data-hits="7" data-linenumber="35">
|
1497
|
+
<span class="hits">7</span>
|
1468
1498
|
|
1469
|
-
|
1470
|
-
<code class="ruby"></code>
|
1499
|
+
<code class="ruby"> @auto_renew_status = Integer(attributes['auto_renew_status']) if attributes['auto_renew_status']</code>
|
1471
1500
|
</li>
|
1472
1501
|
|
1473
|
-
<li class="covered" data-hits="
|
1474
|
-
<span class="hits">
|
1502
|
+
<li class="covered" data-hits="7" data-linenumber="36">
|
1503
|
+
<span class="hits">7</span>
|
1475
1504
|
|
1476
|
-
<code class="ruby">
|
1505
|
+
<code class="ruby"> @auto_renew_product_id = attributes['auto_renew_product_id']</code>
|
1477
1506
|
</li>
|
1478
1507
|
|
1479
1508
|
<li class="never" data-hits="" data-linenumber="37">
|
@@ -1482,661 +1511,1148 @@
|
|
1482
1511
|
<code class="ruby"></code>
|
1483
1512
|
</li>
|
1484
1513
|
|
1485
|
-
<li class="covered" data-hits="
|
1486
|
-
<span class="hits">
|
1514
|
+
<li class="covered" data-hits="7" data-linenumber="38">
|
1515
|
+
<span class="hits">7</span>
|
1487
1516
|
|
1488
|
-
<code class="ruby">
|
1517
|
+
<code class="ruby"> if attributes['is_in_billing_retry_period']</code>
|
1489
1518
|
</li>
|
1490
1519
|
|
1491
|
-
<li class="covered" data-hits="
|
1492
|
-
<span class="hits">
|
1520
|
+
<li class="covered" data-hits="7" data-linenumber="39">
|
1521
|
+
<span class="hits">7</span>
|
1493
1522
|
|
1494
|
-
<code class="ruby">
|
1523
|
+
<code class="ruby"> @is_in_billing_retry_period = (attributes[is_in_billing_retry_period] == "1" ? true : false)</code>
|
1495
1524
|
</li>
|
1496
1525
|
|
1497
1526
|
<li class="never" data-hits="" data-linenumber="40">
|
1498
1527
|
|
1499
1528
|
|
1500
|
-
<code class="ruby"
|
1529
|
+
<code class="ruby"> end</code>
|
1501
1530
|
</li>
|
1502
1531
|
|
1503
|
-
<li class="
|
1504
|
-
<span class="hits">6</span>
|
1532
|
+
<li class="never" data-hits="" data-linenumber="41">
|
1505
1533
|
|
1506
|
-
|
1534
|
+
|
1535
|
+
<code class="ruby"></code>
|
1507
1536
|
</li>
|
1508
1537
|
|
1509
|
-
<li class="covered" data-hits="
|
1510
|
-
<span class="hits">
|
1538
|
+
<li class="covered" data-hits="7" data-linenumber="42">
|
1539
|
+
<span class="hits">7</span>
|
1511
1540
|
|
1512
|
-
<code class="ruby"> @
|
1541
|
+
<code class="ruby"> @product_id = attributes['product_id']</code>
|
1513
1542
|
</li>
|
1514
1543
|
|
1515
|
-
<li class="
|
1516
|
-
<span class="hits">6</span>
|
1544
|
+
<li class="never" data-hits="" data-linenumber="43">
|
1517
1545
|
|
1518
|
-
|
1546
|
+
|
1547
|
+
<code class="ruby"></code>
|
1519
1548
|
</li>
|
1520
1549
|
|
1521
|
-
<li class="covered" data-hits="
|
1522
|
-
<span class="hits">
|
1550
|
+
<li class="covered" data-hits="7" data-linenumber="44">
|
1551
|
+
<span class="hits">7</span>
|
1523
1552
|
|
1524
|
-
<code class="ruby"> if attributes['
|
1553
|
+
<code class="ruby"> @price_consent_status = Integer(attributes['price_consent_status']) if attributes['price_consent_status']</code>
|
1525
1554
|
</li>
|
1526
1555
|
|
1527
|
-
<li class="covered" data-hits="
|
1528
|
-
<span class="hits">
|
1556
|
+
<li class="covered" data-hits="7" data-linenumber="45">
|
1557
|
+
<span class="hits">7</span>
|
1529
1558
|
|
1530
|
-
<code class="ruby">
|
1559
|
+
<code class="ruby"> @cancellation_reason = Integer(attributes['cancellation_reason']) if attributes['cancellation_reason']</code>
|
1531
1560
|
</li>
|
1532
1561
|
|
1533
1562
|
<li class="never" data-hits="" data-linenumber="46">
|
1534
1563
|
|
1535
1564
|
|
1536
|
-
<code class="ruby">
|
1565
|
+
<code class="ruby"> end</code>
|
1537
1566
|
</li>
|
1538
1567
|
|
1539
|
-
<li class="
|
1540
|
-
<span class="hits">6</span>
|
1568
|
+
<li class="never" data-hits="" data-linenumber="47">
|
1541
1569
|
|
1542
|
-
|
1570
|
+
|
1571
|
+
<code class="ruby"></code>
|
1543
1572
|
</li>
|
1544
1573
|
|
1545
|
-
<li class="covered" data-hits="
|
1546
|
-
<span class="hits">
|
1574
|
+
<li class="covered" data-hits="1" data-linenumber="48">
|
1575
|
+
<span class="hits">1</span>
|
1547
1576
|
|
1548
|
-
<code class="ruby">
|
1577
|
+
<code class="ruby"> def to_hash</code>
|
1549
1578
|
</li>
|
1550
1579
|
|
1551
1580
|
<li class="never" data-hits="" data-linenumber="49">
|
1552
1581
|
|
1553
1582
|
|
1554
|
-
<code class="ruby">
|
1583
|
+
<code class="ruby"> {</code>
|
1555
1584
|
</li>
|
1556
1585
|
|
1557
1586
|
<li class="never" data-hits="" data-linenumber="50">
|
1558
1587
|
|
1559
1588
|
|
1560
|
-
<code class="ruby"
|
1561
|
-
</li>
|
1562
|
-
|
1563
|
-
<li class="covered" data-hits="6" data-linenumber="51">
|
1564
|
-
<span class="hits">6</span>
|
1565
|
-
|
1566
|
-
<code class="ruby"> @receipt_type = attributes['receipt_type']</code>
|
1567
|
-
</li>
|
1568
|
-
|
1569
|
-
<li class="covered" data-hits="6" data-linenumber="52">
|
1570
|
-
<span class="hits">6</span>
|
1571
|
-
|
1572
|
-
<code class="ruby"> @adam_id = attributes['adam_id']</code>
|
1589
|
+
<code class="ruby"> expiration_intent: @expiration_intent,</code>
|
1573
1590
|
</li>
|
1574
1591
|
|
1575
|
-
<li class="
|
1576
|
-
<span class="hits">6</span>
|
1592
|
+
<li class="never" data-hits="" data-linenumber="51">
|
1577
1593
|
|
1578
|
-
<code class="ruby"> @download_id = attributes['download_id']</code>
|
1579
|
-
</li>
|
1580
|
-
|
1581
|
-
<li class="covered" data-hits="6" data-linenumber="54">
|
1582
|
-
<span class="hits">6</span>
|
1583
1594
|
|
1584
|
-
<code class="ruby">
|
1595
|
+
<code class="ruby"> auto_renew_status: @auto_renew_status,</code>
|
1585
1596
|
</li>
|
1586
1597
|
|
1587
|
-
<li class="never" data-hits="" data-linenumber="
|
1598
|
+
<li class="never" data-hits="" data-linenumber="52">
|
1588
1599
|
|
1589
1600
|
|
1590
|
-
<code class="ruby"
|
1601
|
+
<code class="ruby"> auto_renew_product_id: @auto_renew_product_id,</code>
|
1591
1602
|
</li>
|
1592
1603
|
|
1593
|
-
<li class="
|
1594
|
-
<span class="hits">6</span>
|
1604
|
+
<li class="never" data-hits="" data-linenumber="53">
|
1595
1605
|
|
1596
|
-
<code class="ruby"> @in_app = []</code>
|
1597
|
-
</li>
|
1598
|
-
|
1599
|
-
<li class="covered" data-hits="6" data-linenumber="57">
|
1600
|
-
<span class="hits">6</span>
|
1601
1606
|
|
1602
|
-
<code class="ruby">
|
1607
|
+
<code class="ruby"> is_in_billing_retry_period: @is_in_billing_retry_period,</code>
|
1603
1608
|
</li>
|
1604
1609
|
|
1605
|
-
<li class="
|
1606
|
-
<span class="hits">5</span>
|
1610
|
+
<li class="never" data-hits="" data-linenumber="54">
|
1607
1611
|
|
1608
|
-
<code class="ruby"> attributes['in_app'].each do |in_app_purchase_attributes|</code>
|
1609
|
-
</li>
|
1610
|
-
|
1611
|
-
<li class="covered" data-hits="5" data-linenumber="59">
|
1612
|
-
<span class="hits">5</span>
|
1613
1612
|
|
1614
|
-
<code class="ruby">
|
1613
|
+
<code class="ruby"> product_id: @product_id,</code>
|
1615
1614
|
</li>
|
1616
1615
|
|
1617
|
-
<li class="never" data-hits="" data-linenumber="
|
1616
|
+
<li class="never" data-hits="" data-linenumber="55">
|
1618
1617
|
|
1619
1618
|
|
1620
|
-
<code class="ruby">
|
1619
|
+
<code class="ruby"> price_consent_status: @price_consent_status,</code>
|
1621
1620
|
</li>
|
1622
1621
|
|
1623
|
-
<li class="never" data-hits="" data-linenumber="
|
1622
|
+
<li class="never" data-hits="" data-linenumber="56">
|
1624
1623
|
|
1625
1624
|
|
1626
|
-
<code class="ruby">
|
1625
|
+
<code class="ruby"> cancellation_reason: @cancellation_reason</code>
|
1627
1626
|
</li>
|
1628
1627
|
|
1629
|
-
<li class="
|
1628
|
+
<li class="covered" data-hits="2" data-linenumber="57">
|
1629
|
+
<span class="hits">2</span>
|
1630
1630
|
|
1631
|
-
|
1632
|
-
<code class="ruby"></code>
|
1631
|
+
<code class="ruby"> }</code>
|
1633
1632
|
</li>
|
1634
1633
|
|
1635
|
-
<li class="never" data-hits="" data-linenumber="
|
1634
|
+
<li class="never" data-hits="" data-linenumber="58">
|
1636
1635
|
|
1637
1636
|
|
1638
1637
|
<code class="ruby"> end</code>
|
1639
1638
|
</li>
|
1640
1639
|
|
1641
|
-
<li class="never" data-hits="" data-linenumber="
|
1640
|
+
<li class="never" data-hits="" data-linenumber="59">
|
1642
1641
|
|
1643
1642
|
|
1644
1643
|
<code class="ruby"></code>
|
1645
1644
|
</li>
|
1646
1645
|
|
1647
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1646
|
+
<li class="covered" data-hits="1" data-linenumber="60">
|
1648
1647
|
<span class="hits">1</span>
|
1649
1648
|
|
1650
|
-
<code class="ruby">
|
1649
|
+
<code class="ruby"> alias_method :to_h, :to_hash</code>
|
1651
1650
|
</li>
|
1652
1651
|
|
1653
|
-
<li class="never" data-hits="" data-linenumber="
|
1652
|
+
<li class="never" data-hits="" data-linenumber="61">
|
1654
1653
|
|
1655
1654
|
|
1656
|
-
<code class="ruby"
|
1655
|
+
<code class="ruby"></code>
|
1657
1656
|
</li>
|
1658
1657
|
|
1659
|
-
<li class="
|
1660
|
-
|
1658
|
+
<li class="covered" data-hits="1" data-linenumber="62">
|
1659
|
+
<span class="hits">1</span>
|
1661
1660
|
|
1662
|
-
<code class="ruby">
|
1661
|
+
<code class="ruby"> def to_json</code>
|
1663
1662
|
</li>
|
1664
1663
|
|
1665
|
-
<li class="
|
1664
|
+
<li class="missed" data-hits="0" data-linenumber="63">
|
1666
1665
|
|
1667
1666
|
|
1668
|
-
<code class="ruby">
|
1667
|
+
<code class="ruby"> self.to_hash.to_json</code>
|
1669
1668
|
</li>
|
1670
1669
|
|
1671
|
-
<li class="never" data-hits="" data-linenumber="
|
1670
|
+
<li class="never" data-hits="" data-linenumber="64">
|
1672
1671
|
|
1673
1672
|
|
1674
|
-
<code class="ruby">
|
1673
|
+
<code class="ruby"> end</code>
|
1675
1674
|
</li>
|
1676
1675
|
|
1677
|
-
<li class="
|
1676
|
+
<li class="never" data-hits="" data-linenumber="65">
|
1678
1677
|
|
1679
1678
|
|
1680
|
-
<code class="ruby">
|
1679
|
+
<code class="ruby"> end</code>
|
1681
1680
|
</li>
|
1682
1681
|
|
1683
|
-
<li class="
|
1682
|
+
<li class="never" data-hits="" data-linenumber="66">
|
1684
1683
|
|
1685
1684
|
|
1686
|
-
<code class="ruby">
|
1685
|
+
<code class="ruby">end</code>
|
1687
1686
|
</li>
|
1688
1687
|
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1688
|
+
</ol>
|
1689
|
+
</pre>
|
1690
|
+
</div>
|
1691
|
+
|
1692
|
+
|
1693
|
+
<div class="source_table" id="10dfdb14e321a7bb364075307e5a80a2a62317af">
|
1694
|
+
<div class="header">
|
1695
|
+
<h3>lib/venice/receipt.rb</h3>
|
1696
|
+
<h4><span class="red">74.07 %</span> covered</h4>
|
1697
|
+
<div>
|
1698
|
+
<b>81</b> relevant lines.
|
1699
|
+
<span class="green"><b>60</b> lines covered</span> and
|
1700
|
+
<span class="red"><b>21</b> lines missed.</span>
|
1701
|
+
</div>
|
1702
|
+
</div>
|
1703
|
+
|
1704
|
+
<pre>
|
1705
|
+
<ol>
|
1706
|
+
|
1707
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
1708
|
+
<span class="hits">1</span>
|
1709
|
+
|
1710
|
+
<code class="ruby">require 'time'</code>
|
1711
|
+
</li>
|
1712
|
+
|
1713
|
+
<li class="never" data-hits="" data-linenumber="2">
|
1714
|
+
|
1715
|
+
|
1716
|
+
<code class="ruby"></code>
|
1717
|
+
</li>
|
1718
|
+
|
1719
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
1720
|
+
<span class="hits">1</span>
|
1721
|
+
|
1722
|
+
<code class="ruby">module Venice</code>
|
1723
|
+
</li>
|
1724
|
+
|
1725
|
+
<li class="covered" data-hits="1" data-linenumber="4">
|
1726
|
+
<span class="hits">1</span>
|
1727
|
+
|
1728
|
+
<code class="ruby"> class Receipt</code>
|
1729
|
+
</li>
|
1730
|
+
|
1731
|
+
<li class="never" data-hits="" data-linenumber="5">
|
1732
|
+
|
1733
|
+
|
1734
|
+
<code class="ruby"> # For detailed explanations on these keys/values, see</code>
|
1735
|
+
</li>
|
1736
|
+
|
1737
|
+
<li class="never" data-hits="" data-linenumber="6">
|
1738
|
+
|
1739
|
+
|
1740
|
+
<code class="ruby"> # https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1</code>
|
1741
|
+
</li>
|
1742
|
+
|
1743
|
+
<li class="never" data-hits="" data-linenumber="7">
|
1744
|
+
|
1745
|
+
|
1746
|
+
<code class="ruby"></code>
|
1747
|
+
</li>
|
1748
|
+
|
1749
|
+
<li class="never" data-hits="" data-linenumber="8">
|
1750
|
+
|
1751
|
+
|
1752
|
+
<code class="ruby"> # The app’s bundle identifier.</code>
|
1753
|
+
</li>
|
1754
|
+
|
1755
|
+
<li class="covered" data-hits="1" data-linenumber="9">
|
1756
|
+
<span class="hits">1</span>
|
1757
|
+
|
1758
|
+
<code class="ruby"> attr_reader :bundle_id</code>
|
1759
|
+
</li>
|
1760
|
+
|
1761
|
+
<li class="never" data-hits="" data-linenumber="10">
|
1762
|
+
|
1763
|
+
|
1764
|
+
<code class="ruby"></code>
|
1765
|
+
</li>
|
1766
|
+
|
1767
|
+
<li class="never" data-hits="" data-linenumber="11">
|
1768
|
+
|
1769
|
+
|
1770
|
+
<code class="ruby"> # The app’s version number.</code>
|
1771
|
+
</li>
|
1772
|
+
|
1773
|
+
<li class="covered" data-hits="1" data-linenumber="12">
|
1774
|
+
<span class="hits">1</span>
|
1775
|
+
|
1776
|
+
<code class="ruby"> attr_reader :application_version</code>
|
1777
|
+
</li>
|
1778
|
+
|
1779
|
+
<li class="never" data-hits="" data-linenumber="13">
|
1780
|
+
|
1781
|
+
|
1782
|
+
<code class="ruby"></code>
|
1783
|
+
</li>
|
1784
|
+
|
1785
|
+
<li class="never" data-hits="" data-linenumber="14">
|
1786
|
+
|
1787
|
+
|
1788
|
+
<code class="ruby"> # The receipt for an in-app purchase.</code>
|
1789
|
+
</li>
|
1790
|
+
|
1791
|
+
<li class="covered" data-hits="1" data-linenumber="15">
|
1792
|
+
<span class="hits">1</span>
|
1793
|
+
|
1794
|
+
<code class="ruby"> attr_reader :in_app</code>
|
1795
|
+
</li>
|
1796
|
+
|
1797
|
+
<li class="never" data-hits="" data-linenumber="16">
|
1798
|
+
|
1799
|
+
|
1800
|
+
<code class="ruby"></code>
|
1801
|
+
</li>
|
1802
|
+
|
1803
|
+
<li class="never" data-hits="" data-linenumber="17">
|
1804
|
+
|
1805
|
+
|
1806
|
+
<code class="ruby"> # The version of the app that was originally purchased.</code>
|
1807
|
+
</li>
|
1808
|
+
|
1809
|
+
<li class="covered" data-hits="1" data-linenumber="18">
|
1810
|
+
<span class="hits">1</span>
|
1811
|
+
|
1812
|
+
<code class="ruby"> attr_reader :original_application_version</code>
|
1813
|
+
</li>
|
1814
|
+
|
1815
|
+
<li class="never" data-hits="" data-linenumber="19">
|
1816
|
+
|
1817
|
+
|
1818
|
+
<code class="ruby"></code>
|
1819
|
+
</li>
|
1820
|
+
|
1821
|
+
<li class="never" data-hits="" data-linenumber="20">
|
1822
|
+
|
1823
|
+
|
1824
|
+
<code class="ruby"> # The original purchase date</code>
|
1825
|
+
</li>
|
1826
|
+
|
1827
|
+
<li class="covered" data-hits="1" data-linenumber="21">
|
1828
|
+
<span class="hits">1</span>
|
1829
|
+
|
1830
|
+
<code class="ruby"> attr_reader :original_purchase_date</code>
|
1831
|
+
</li>
|
1832
|
+
|
1833
|
+
<li class="never" data-hits="" data-linenumber="22">
|
1834
|
+
|
1835
|
+
|
1836
|
+
<code class="ruby"></code>
|
1837
|
+
</li>
|
1838
|
+
|
1839
|
+
<li class="never" data-hits="" data-linenumber="23">
|
1840
|
+
|
1841
|
+
|
1842
|
+
<code class="ruby"> # The date that the app receipt expires.</code>
|
1843
|
+
</li>
|
1844
|
+
|
1845
|
+
<li class="covered" data-hits="1" data-linenumber="24">
|
1846
|
+
<span class="hits">1</span>
|
1847
|
+
|
1848
|
+
<code class="ruby"> attr_reader :expires_at</code>
|
1849
|
+
</li>
|
1850
|
+
|
1851
|
+
<li class="never" data-hits="" data-linenumber="25">
|
1852
|
+
|
1853
|
+
|
1854
|
+
<code class="ruby"></code>
|
1855
|
+
</li>
|
1856
|
+
|
1857
|
+
<li class="never" data-hits="" data-linenumber="26">
|
1858
|
+
|
1859
|
+
|
1860
|
+
<code class="ruby"> # Non-Documented receipt keys/values</code>
|
1861
|
+
</li>
|
1862
|
+
|
1863
|
+
<li class="covered" data-hits="1" data-linenumber="27">
|
1864
|
+
<span class="hits">1</span>
|
1865
|
+
|
1866
|
+
<code class="ruby"> attr_reader :receipt_type</code>
|
1867
|
+
</li>
|
1868
|
+
|
1869
|
+
<li class="covered" data-hits="1" data-linenumber="28">
|
1870
|
+
<span class="hits">1</span>
|
1871
|
+
|
1872
|
+
<code class="ruby"> attr_reader :adam_id</code>
|
1873
|
+
</li>
|
1874
|
+
|
1875
|
+
<li class="covered" data-hits="1" data-linenumber="29">
|
1876
|
+
<span class="hits">1</span>
|
1877
|
+
|
1878
|
+
<code class="ruby"> attr_reader :download_id</code>
|
1879
|
+
</li>
|
1880
|
+
|
1881
|
+
<li class="covered" data-hits="1" data-linenumber="30">
|
1882
|
+
<span class="hits">1</span>
|
1883
|
+
|
1884
|
+
<code class="ruby"> attr_reader :requested_at</code>
|
1885
|
+
</li>
|
1886
|
+
|
1887
|
+
<li class="never" data-hits="" data-linenumber="31">
|
1888
|
+
|
1889
|
+
|
1890
|
+
<code class="ruby"></code>
|
1891
|
+
</li>
|
1892
|
+
|
1893
|
+
<li class="never" data-hits="" data-linenumber="32">
|
1894
|
+
|
1895
|
+
|
1896
|
+
<code class="ruby"> # Original json response from AppStore</code>
|
1897
|
+
</li>
|
1898
|
+
|
1899
|
+
<li class="covered" data-hits="1" data-linenumber="33">
|
1900
|
+
<span class="hits">1</span>
|
1901
|
+
|
1902
|
+
<code class="ruby"> attr_reader :original_json_response</code>
|
1903
|
+
</li>
|
1904
|
+
|
1905
|
+
<li class="never" data-hits="" data-linenumber="34">
|
1906
|
+
|
1907
|
+
|
1908
|
+
<code class="ruby"></code>
|
1909
|
+
</li>
|
1910
|
+
|
1911
|
+
<li class="covered" data-hits="1" data-linenumber="35">
|
1912
|
+
<span class="hits">1</span>
|
1913
|
+
|
1914
|
+
<code class="ruby"> attr_accessor :latest_receipt_info</code>
|
1915
|
+
</li>
|
1916
|
+
|
1917
|
+
<li class="never" data-hits="" data-linenumber="36">
|
1918
|
+
|
1919
|
+
|
1920
|
+
<code class="ruby"></code>
|
1921
|
+
</li>
|
1922
|
+
|
1923
|
+
<li class="never" data-hits="" data-linenumber="37">
|
1924
|
+
|
1925
|
+
|
1926
|
+
<code class="ruby"> # Information about the status of the customer's auto-renewable subscriptions</code>
|
1927
|
+
</li>
|
1928
|
+
|
1929
|
+
<li class="covered" data-hits="1" data-linenumber="38">
|
1930
|
+
<span class="hits">1</span>
|
1931
|
+
|
1932
|
+
<code class="ruby"> attr_reader :pending_renewal_info</code>
|
1933
|
+
</li>
|
1934
|
+
|
1935
|
+
<li class="never" data-hits="" data-linenumber="39">
|
1936
|
+
|
1937
|
+
|
1938
|
+
<code class="ruby"></code>
|
1939
|
+
</li>
|
1940
|
+
|
1941
|
+
<li class="covered" data-hits="1" data-linenumber="40">
|
1942
|
+
<span class="hits">1</span>
|
1943
|
+
|
1944
|
+
<code class="ruby"> def initialize(attributes = {})</code>
|
1945
|
+
</li>
|
1946
|
+
|
1947
|
+
<li class="covered" data-hits="7" data-linenumber="41">
|
1948
|
+
<span class="hits">7</span>
|
1949
|
+
|
1950
|
+
<code class="ruby"> @original_json_response = attributes['original_json_response']</code>
|
1951
|
+
</li>
|
1952
|
+
|
1953
|
+
<li class="never" data-hits="" data-linenumber="42">
|
1954
|
+
|
1955
|
+
|
1956
|
+
<code class="ruby"></code>
|
1957
|
+
</li>
|
1958
|
+
|
1959
|
+
<li class="covered" data-hits="7" data-linenumber="43">
|
1960
|
+
<span class="hits">7</span>
|
1961
|
+
|
1962
|
+
<code class="ruby"> @bundle_id = attributes['bundle_id']</code>
|
1963
|
+
</li>
|
1964
|
+
|
1965
|
+
<li class="covered" data-hits="7" data-linenumber="44">
|
1966
|
+
<span class="hits">7</span>
|
1967
|
+
|
1968
|
+
<code class="ruby"> @application_version = attributes['application_version']</code>
|
1969
|
+
</li>
|
1970
|
+
|
1971
|
+
<li class="covered" data-hits="7" data-linenumber="45">
|
1972
|
+
<span class="hits">7</span>
|
1973
|
+
|
1974
|
+
<code class="ruby"> @original_application_version = attributes['original_application_version']</code>
|
1975
|
+
</li>
|
1976
|
+
|
1977
|
+
<li class="covered" data-hits="7" data-linenumber="46">
|
1978
|
+
<span class="hits">7</span>
|
1979
|
+
|
1980
|
+
<code class="ruby"> if attributes['original_purchase_date']</code>
|
1981
|
+
</li>
|
1982
|
+
|
1983
|
+
<li class="covered" data-hits="6" data-linenumber="47">
|
1984
|
+
<span class="hits">6</span>
|
1985
|
+
|
1986
|
+
<code class="ruby"> @original_purchase_date = DateTime.parse(attributes['original_purchase_date'])</code>
|
1987
|
+
</li>
|
1988
|
+
|
1989
|
+
<li class="never" data-hits="" data-linenumber="48">
|
1990
|
+
|
1991
|
+
|
1992
|
+
<code class="ruby"> end</code>
|
1993
|
+
</li>
|
1994
|
+
|
1995
|
+
<li class="covered" data-hits="7" data-linenumber="49">
|
1996
|
+
<span class="hits">7</span>
|
1997
|
+
|
1998
|
+
<code class="ruby"> if attributes['expiration_date']</code>
|
1999
|
+
</li>
|
2000
|
+
|
2001
|
+
<li class="covered" data-hits="6" data-linenumber="50">
|
2002
|
+
<span class="hits">6</span>
|
2003
|
+
|
2004
|
+
<code class="ruby"> @expires_at = Time.at(attributes['expiration_date'].to_i / 1000).to_datetime</code>
|
2005
|
+
</li>
|
2006
|
+
|
2007
|
+
<li class="never" data-hits="" data-linenumber="51">
|
2008
|
+
|
2009
|
+
|
2010
|
+
<code class="ruby"> end</code>
|
2011
|
+
</li>
|
2012
|
+
|
2013
|
+
<li class="never" data-hits="" data-linenumber="52">
|
2014
|
+
|
2015
|
+
|
2016
|
+
<code class="ruby"></code>
|
2017
|
+
</li>
|
2018
|
+
|
2019
|
+
<li class="covered" data-hits="7" data-linenumber="53">
|
2020
|
+
<span class="hits">7</span>
|
2021
|
+
|
2022
|
+
<code class="ruby"> @receipt_type = attributes['receipt_type']</code>
|
2023
|
+
</li>
|
2024
|
+
|
2025
|
+
<li class="covered" data-hits="7" data-linenumber="54">
|
2026
|
+
<span class="hits">7</span>
|
2027
|
+
|
2028
|
+
<code class="ruby"> @adam_id = attributes['adam_id']</code>
|
2029
|
+
</li>
|
2030
|
+
|
2031
|
+
<li class="covered" data-hits="7" data-linenumber="55">
|
2032
|
+
<span class="hits">7</span>
|
2033
|
+
|
2034
|
+
<code class="ruby"> @download_id = attributes['download_id']</code>
|
2035
|
+
</li>
|
2036
|
+
|
2037
|
+
<li class="covered" data-hits="7" data-linenumber="56">
|
2038
|
+
<span class="hits">7</span>
|
2039
|
+
|
2040
|
+
<code class="ruby"> @requested_at = DateTime.parse(attributes['request_date']) if attributes['request_date']</code>
|
2041
|
+
</li>
|
2042
|
+
|
2043
|
+
<li class="never" data-hits="" data-linenumber="57">
|
2044
|
+
|
2045
|
+
|
2046
|
+
<code class="ruby"></code>
|
2047
|
+
</li>
|
2048
|
+
|
2049
|
+
<li class="covered" data-hits="7" data-linenumber="58">
|
2050
|
+
<span class="hits">7</span>
|
2051
|
+
|
2052
|
+
<code class="ruby"> @in_app = []</code>
|
2053
|
+
</li>
|
2054
|
+
|
2055
|
+
<li class="covered" data-hits="7" data-linenumber="59">
|
2056
|
+
<span class="hits">7</span>
|
2057
|
+
|
2058
|
+
<code class="ruby"> if attributes['in_app']</code>
|
2059
|
+
</li>
|
2060
|
+
|
2061
|
+
<li class="covered" data-hits="6" data-linenumber="60">
|
2062
|
+
<span class="hits">6</span>
|
2063
|
+
|
2064
|
+
<code class="ruby"> attributes['in_app'].each do |in_app_purchase_attributes|</code>
|
2065
|
+
</li>
|
2066
|
+
|
2067
|
+
<li class="covered" data-hits="6" data-linenumber="61">
|
2068
|
+
<span class="hits">6</span>
|
2069
|
+
|
2070
|
+
<code class="ruby"> @in_app << InAppReceipt.new(in_app_purchase_attributes)</code>
|
2071
|
+
</li>
|
2072
|
+
|
2073
|
+
<li class="never" data-hits="" data-linenumber="62">
|
2074
|
+
|
2075
|
+
|
2076
|
+
<code class="ruby"> end</code>
|
2077
|
+
</li>
|
2078
|
+
|
2079
|
+
<li class="never" data-hits="" data-linenumber="63">
|
2080
|
+
|
2081
|
+
|
2082
|
+
<code class="ruby"> end</code>
|
2083
|
+
</li>
|
2084
|
+
|
2085
|
+
<li class="never" data-hits="" data-linenumber="64">
|
2086
|
+
|
2087
|
+
|
2088
|
+
<code class="ruby"></code>
|
2089
|
+
</li>
|
2090
|
+
|
2091
|
+
<li class="covered" data-hits="7" data-linenumber="65">
|
2092
|
+
<span class="hits">7</span>
|
2093
|
+
|
2094
|
+
<code class="ruby"> @pending_renewal_info = []</code>
|
2095
|
+
</li>
|
2096
|
+
|
2097
|
+
<li class="covered" data-hits="7" data-linenumber="66">
|
2098
|
+
<span class="hits">7</span>
|
2099
|
+
|
2100
|
+
<code class="ruby"> if original_json_response && original_json_response['pending_renewal_info']</code>
|
2101
|
+
</li>
|
2102
|
+
|
2103
|
+
<li class="covered" data-hits="5" data-linenumber="67">
|
2104
|
+
<span class="hits">5</span>
|
2105
|
+
|
2106
|
+
<code class="ruby"> original_json_response['pending_renewal_info'].each do |pending_renewal_attributes|</code>
|
2107
|
+
</li>
|
2108
|
+
|
2109
|
+
<li class="covered" data-hits="5" data-linenumber="68">
|
2110
|
+
<span class="hits">5</span>
|
2111
|
+
|
2112
|
+
<code class="ruby"> @pending_renewal_info << PendingRenewalInfo.new(pending_renewal_attributes)</code>
|
2113
|
+
</li>
|
2114
|
+
|
2115
|
+
<li class="never" data-hits="" data-linenumber="69">
|
2116
|
+
|
2117
|
+
|
2118
|
+
<code class="ruby"> end</code>
|
2119
|
+
</li>
|
2120
|
+
|
2121
|
+
<li class="never" data-hits="" data-linenumber="70">
|
2122
|
+
|
2123
|
+
|
2124
|
+
<code class="ruby"> end</code>
|
2125
|
+
</li>
|
2126
|
+
|
2127
|
+
<li class="never" data-hits="" data-linenumber="71">
|
2128
|
+
|
2129
|
+
|
2130
|
+
<code class="ruby"></code>
|
2131
|
+
</li>
|
2132
|
+
|
2133
|
+
<li class="never" data-hits="" data-linenumber="72">
|
2134
|
+
|
2135
|
+
|
2136
|
+
<code class="ruby"> end</code>
|
2137
|
+
</li>
|
1694
2138
|
|
1695
2139
|
<li class="never" data-hits="" data-linenumber="73">
|
1696
2140
|
|
1697
2141
|
|
2142
|
+
<code class="ruby"></code>
|
2143
|
+
</li>
|
2144
|
+
|
2145
|
+
<li class="covered" data-hits="1" data-linenumber="74">
|
2146
|
+
<span class="hits">1</span>
|
2147
|
+
|
2148
|
+
<code class="ruby"> def to_hash</code>
|
2149
|
+
</li>
|
2150
|
+
|
2151
|
+
<li class="never" data-hits="" data-linenumber="75">
|
2152
|
+
|
2153
|
+
|
2154
|
+
<code class="ruby"> {</code>
|
2155
|
+
</li>
|
2156
|
+
|
2157
|
+
<li class="never" data-hits="" data-linenumber="76">
|
2158
|
+
|
2159
|
+
|
2160
|
+
<code class="ruby"> :bundle_id => @bundle_id,</code>
|
2161
|
+
</li>
|
2162
|
+
|
2163
|
+
<li class="never" data-hits="" data-linenumber="77">
|
2164
|
+
|
2165
|
+
|
2166
|
+
<code class="ruby"> :application_version => @application_version,</code>
|
2167
|
+
</li>
|
2168
|
+
|
2169
|
+
<li class="never" data-hits="" data-linenumber="78">
|
2170
|
+
|
2171
|
+
|
2172
|
+
<code class="ruby"> :original_application_version => @original_application_version,</code>
|
2173
|
+
</li>
|
2174
|
+
|
2175
|
+
<li class="covered" data-hits="1" data-linenumber="79">
|
2176
|
+
<span class="hits">1</span>
|
2177
|
+
|
2178
|
+
<code class="ruby"> :original_purchase_date => (@original_purchase_date.httpdate rescue nil),</code>
|
2179
|
+
</li>
|
2180
|
+
|
2181
|
+
<li class="covered" data-hits="1" data-linenumber="80">
|
2182
|
+
<span class="hits">1</span>
|
2183
|
+
|
2184
|
+
<code class="ruby"> :expires_at => (@expires_at.httpdate rescue nil),</code>
|
2185
|
+
</li>
|
2186
|
+
|
2187
|
+
<li class="never" data-hits="" data-linenumber="81">
|
2188
|
+
|
2189
|
+
|
2190
|
+
<code class="ruby"> :receipt_type => @receipt_type,</code>
|
2191
|
+
</li>
|
2192
|
+
|
2193
|
+
<li class="never" data-hits="" data-linenumber="82">
|
2194
|
+
|
2195
|
+
|
1698
2196
|
<code class="ruby"> :adam_id => @adam_id,</code>
|
1699
2197
|
</li>
|
1700
2198
|
|
1701
|
-
<li class="never" data-hits="" data-linenumber="
|
2199
|
+
<li class="never" data-hits="" data-linenumber="83">
|
1702
2200
|
|
1703
2201
|
|
1704
2202
|
<code class="ruby"> :download_id => @download_id,</code>
|
1705
2203
|
</li>
|
1706
2204
|
|
1707
|
-
<li class="
|
1708
|
-
|
2205
|
+
<li class="covered" data-hits="1" data-linenumber="84">
|
2206
|
+
<span class="hits">1</span>
|
1709
2207
|
|
1710
2208
|
<code class="ruby"> :requested_at => (@requested_at.httpdate rescue nil),</code>
|
1711
2209
|
</li>
|
1712
2210
|
|
1713
|
-
<li class="
|
1714
|
-
|
2211
|
+
<li class="covered" data-hits="1" data-linenumber="85">
|
2212
|
+
<span class="hits">1</span>
|
1715
2213
|
|
1716
2214
|
<code class="ruby"> :in_app => @in_app.map{|iap| iap.to_h },</code>
|
1717
2215
|
</li>
|
1718
2216
|
|
1719
|
-
<li class="
|
2217
|
+
<li class="covered" data-hits="1" data-linenumber="86">
|
2218
|
+
<span class="hits">1</span>
|
2219
|
+
|
2220
|
+
<code class="ruby"> :pending_renewal_info => @pending_renewal_info.map { |pend_info| pend_info.to_h },</code>
|
2221
|
+
</li>
|
2222
|
+
|
2223
|
+
<li class="never" data-hits="" data-linenumber="87">
|
1720
2224
|
|
1721
2225
|
|
1722
2226
|
<code class="ruby"> :latest_receipt_info => @latest_receipt_info</code>
|
1723
2227
|
</li>
|
1724
2228
|
|
1725
|
-
<li class="
|
1726
|
-
|
2229
|
+
<li class="covered" data-hits="1" data-linenumber="88">
|
2230
|
+
<span class="hits">1</span>
|
1727
2231
|
|
1728
2232
|
<code class="ruby"> }</code>
|
1729
2233
|
</li>
|
1730
2234
|
|
1731
|
-
<li class="never" data-hits="" data-linenumber="
|
2235
|
+
<li class="never" data-hits="" data-linenumber="89">
|
1732
2236
|
|
1733
2237
|
|
1734
2238
|
<code class="ruby"> end</code>
|
1735
2239
|
</li>
|
1736
2240
|
|
1737
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2241
|
+
<li class="covered" data-hits="1" data-linenumber="90">
|
1738
2242
|
<span class="hits">1</span>
|
1739
2243
|
|
1740
2244
|
<code class="ruby"> alias_method :to_h, :to_hash</code>
|
1741
2245
|
</li>
|
1742
2246
|
|
1743
|
-
<li class="never" data-hits="" data-linenumber="
|
2247
|
+
<li class="never" data-hits="" data-linenumber="91">
|
1744
2248
|
|
1745
2249
|
|
1746
2250
|
<code class="ruby"></code>
|
1747
2251
|
</li>
|
1748
2252
|
|
1749
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2253
|
+
<li class="covered" data-hits="1" data-linenumber="92">
|
1750
2254
|
<span class="hits">1</span>
|
1751
2255
|
|
1752
2256
|
<code class="ruby"> def to_json</code>
|
1753
2257
|
</li>
|
1754
2258
|
|
1755
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2259
|
+
<li class="missed" data-hits="0" data-linenumber="93">
|
1756
2260
|
|
1757
2261
|
|
1758
2262
|
<code class="ruby"> self.to_hash.to_json</code>
|
1759
2263
|
</li>
|
1760
2264
|
|
1761
|
-
<li class="never" data-hits="" data-linenumber="
|
2265
|
+
<li class="never" data-hits="" data-linenumber="94">
|
1762
2266
|
|
1763
2267
|
|
1764
2268
|
<code class="ruby"> end</code>
|
1765
2269
|
</li>
|
1766
2270
|
|
1767
|
-
<li class="never" data-hits="" data-linenumber="
|
2271
|
+
<li class="never" data-hits="" data-linenumber="95">
|
1768
2272
|
|
1769
2273
|
|
1770
2274
|
<code class="ruby"></code>
|
1771
2275
|
</li>
|
1772
2276
|
|
1773
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2277
|
+
<li class="covered" data-hits="1" data-linenumber="96">
|
1774
2278
|
<span class="hits">1</span>
|
1775
2279
|
|
1776
2280
|
<code class="ruby"> class << self</code>
|
1777
2281
|
</li>
|
1778
2282
|
|
1779
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2283
|
+
<li class="covered" data-hits="1" data-linenumber="97">
|
1780
2284
|
<span class="hits">1</span>
|
1781
2285
|
|
1782
2286
|
<code class="ruby"> def verify(data, options = {})</code>
|
1783
2287
|
</li>
|
1784
2288
|
|
1785
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2289
|
+
<li class="covered" data-hits="1" data-linenumber="98">
|
1786
2290
|
<span class="hits">1</span>
|
1787
2291
|
|
1788
2292
|
<code class="ruby"> verify!(data, options) rescue false</code>
|
1789
2293
|
</li>
|
1790
2294
|
|
1791
|
-
<li class="never" data-hits="" data-linenumber="
|
2295
|
+
<li class="never" data-hits="" data-linenumber="99">
|
1792
2296
|
|
1793
2297
|
|
1794
2298
|
<code class="ruby"> end</code>
|
1795
2299
|
</li>
|
1796
2300
|
|
1797
|
-
<li class="never" data-hits="" data-linenumber="
|
2301
|
+
<li class="never" data-hits="" data-linenumber="100">
|
1798
2302
|
|
1799
2303
|
|
1800
2304
|
<code class="ruby"></code>
|
1801
2305
|
</li>
|
1802
2306
|
|
1803
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2307
|
+
<li class="covered" data-hits="1" data-linenumber="101">
|
1804
2308
|
<span class="hits">1</span>
|
1805
2309
|
|
1806
2310
|
<code class="ruby"> def verify!(data, options = {})</code>
|
1807
2311
|
</li>
|
1808
2312
|
|
1809
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2313
|
+
<li class="covered" data-hits="1" data-linenumber="102">
|
1810
2314
|
<span class="hits">1</span>
|
1811
2315
|
|
1812
2316
|
<code class="ruby"> client = Client.production</code>
|
1813
2317
|
</li>
|
1814
2318
|
|
1815
|
-
<li class="never" data-hits="" data-linenumber="
|
2319
|
+
<li class="never" data-hits="" data-linenumber="103">
|
1816
2320
|
|
1817
2321
|
|
1818
2322
|
<code class="ruby"></code>
|
1819
2323
|
</li>
|
1820
2324
|
|
1821
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2325
|
+
<li class="covered" data-hits="1" data-linenumber="104">
|
1822
2326
|
<span class="hits">1</span>
|
1823
2327
|
|
1824
2328
|
<code class="ruby"> begin</code>
|
1825
2329
|
</li>
|
1826
2330
|
|
1827
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2331
|
+
<li class="covered" data-hits="1" data-linenumber="105">
|
1828
2332
|
<span class="hits">1</span>
|
1829
2333
|
|
1830
2334
|
<code class="ruby"> client.verify!(data, options)</code>
|
1831
2335
|
</li>
|
1832
2336
|
|
1833
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2337
|
+
<li class="missed" data-hits="0" data-linenumber="106">
|
1834
2338
|
|
1835
2339
|
|
1836
2340
|
<code class="ruby"> rescue VerificationError => error</code>
|
1837
2341
|
</li>
|
1838
2342
|
|
1839
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2343
|
+
<li class="missed" data-hits="0" data-linenumber="107">
|
1840
2344
|
|
1841
2345
|
|
1842
2346
|
<code class="ruby"> case error.code</code>
|
1843
2347
|
</li>
|
1844
2348
|
|
1845
|
-
<li class="never" data-hits="" data-linenumber="
|
2349
|
+
<li class="never" data-hits="" data-linenumber="108">
|
1846
2350
|
|
1847
2351
|
|
1848
2352
|
<code class="ruby"> when 21007</code>
|
1849
2353
|
</li>
|
1850
2354
|
|
1851
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2355
|
+
<li class="missed" data-hits="0" data-linenumber="109">
|
1852
2356
|
|
1853
2357
|
|
1854
2358
|
<code class="ruby"> client = Client.development</code>
|
1855
2359
|
</li>
|
1856
2360
|
|
1857
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2361
|
+
<li class="missed" data-hits="0" data-linenumber="110">
|
1858
2362
|
|
1859
2363
|
|
1860
2364
|
<code class="ruby"> retry</code>
|
1861
2365
|
</li>
|
1862
2366
|
|
1863
|
-
<li class="never" data-hits="" data-linenumber="
|
2367
|
+
<li class="never" data-hits="" data-linenumber="111">
|
1864
2368
|
|
1865
2369
|
|
1866
2370
|
<code class="ruby"> when 21008</code>
|
1867
2371
|
</li>
|
1868
2372
|
|
1869
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2373
|
+
<li class="missed" data-hits="0" data-linenumber="112">
|
1870
2374
|
|
1871
2375
|
|
1872
2376
|
<code class="ruby"> client = Client.production</code>
|
1873
2377
|
</li>
|
1874
2378
|
|
1875
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2379
|
+
<li class="missed" data-hits="0" data-linenumber="113">
|
1876
2380
|
|
1877
2381
|
|
1878
2382
|
<code class="ruby"> retry</code>
|
1879
2383
|
</li>
|
1880
2384
|
|
1881
|
-
<li class="never" data-hits="" data-linenumber="
|
2385
|
+
<li class="never" data-hits="" data-linenumber="114">
|
1882
2386
|
|
1883
2387
|
|
1884
2388
|
<code class="ruby"> else</code>
|
1885
2389
|
</li>
|
1886
2390
|
|
1887
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2391
|
+
<li class="missed" data-hits="0" data-linenumber="115">
|
1888
2392
|
|
1889
2393
|
|
1890
2394
|
<code class="ruby"> raise error</code>
|
1891
2395
|
</li>
|
1892
2396
|
|
1893
|
-
<li class="never" data-hits="" data-linenumber="
|
2397
|
+
<li class="never" data-hits="" data-linenumber="116">
|
1894
2398
|
|
1895
2399
|
|
1896
2400
|
<code class="ruby"> end</code>
|
1897
2401
|
</li>
|
1898
2402
|
|
1899
|
-
<li class="never" data-hits="" data-linenumber="
|
2403
|
+
<li class="never" data-hits="" data-linenumber="117">
|
1900
2404
|
|
1901
2405
|
|
1902
2406
|
<code class="ruby"> end</code>
|
1903
2407
|
</li>
|
1904
2408
|
|
1905
|
-
<li class="never" data-hits="" data-linenumber="
|
2409
|
+
<li class="never" data-hits="" data-linenumber="118">
|
1906
2410
|
|
1907
2411
|
|
1908
2412
|
<code class="ruby"> end</code>
|
1909
2413
|
</li>
|
1910
2414
|
|
1911
|
-
<li class="never" data-hits="" data-linenumber="
|
2415
|
+
<li class="never" data-hits="" data-linenumber="119">
|
1912
2416
|
|
1913
2417
|
|
1914
2418
|
<code class="ruby"></code>
|
1915
2419
|
</li>
|
1916
2420
|
|
1917
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2421
|
+
<li class="covered" data-hits="1" data-linenumber="120">
|
1918
2422
|
<span class="hits">1</span>
|
1919
2423
|
|
1920
2424
|
<code class="ruby"> alias :validate :verify</code>
|
1921
2425
|
</li>
|
1922
2426
|
|
1923
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2427
|
+
<li class="covered" data-hits="1" data-linenumber="121">
|
1924
2428
|
<span class="hits">1</span>
|
1925
2429
|
|
1926
2430
|
<code class="ruby"> alias :validate! :verify!</code>
|
1927
2431
|
</li>
|
1928
2432
|
|
1929
|
-
<li class="never" data-hits="" data-linenumber="
|
2433
|
+
<li class="never" data-hits="" data-linenumber="122">
|
1930
2434
|
|
1931
2435
|
|
1932
2436
|
<code class="ruby"> end</code>
|
1933
2437
|
</li>
|
1934
2438
|
|
1935
|
-
<li class="never" data-hits="" data-linenumber="
|
2439
|
+
<li class="never" data-hits="" data-linenumber="123">
|
1936
2440
|
|
1937
2441
|
|
1938
2442
|
<code class="ruby"></code>
|
1939
2443
|
</li>
|
1940
2444
|
|
1941
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2445
|
+
<li class="covered" data-hits="1" data-linenumber="124">
|
1942
2446
|
<span class="hits">1</span>
|
1943
2447
|
|
1944
2448
|
<code class="ruby"> class VerificationError < StandardError</code>
|
1945
2449
|
</li>
|
1946
2450
|
|
1947
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2451
|
+
<li class="covered" data-hits="1" data-linenumber="125">
|
1948
2452
|
<span class="hits">1</span>
|
1949
2453
|
|
1950
2454
|
<code class="ruby"> attr_accessor :code</code>
|
1951
2455
|
</li>
|
1952
2456
|
|
1953
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2457
|
+
<li class="covered" data-hits="1" data-linenumber="126">
|
1954
2458
|
<span class="hits">1</span>
|
1955
2459
|
|
1956
2460
|
<code class="ruby"> attr_accessor :receipt</code>
|
1957
2461
|
</li>
|
1958
2462
|
|
1959
|
-
<li class="never" data-hits="" data-linenumber="
|
2463
|
+
<li class="never" data-hits="" data-linenumber="127">
|
1960
2464
|
|
1961
2465
|
|
1962
2466
|
<code class="ruby"></code>
|
1963
2467
|
</li>
|
1964
2468
|
|
1965
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2469
|
+
<li class="covered" data-hits="1" data-linenumber="128">
|
1966
2470
|
<span class="hits">1</span>
|
1967
2471
|
|
1968
2472
|
<code class="ruby"> def initialize(code, receipt)</code>
|
1969
2473
|
</li>
|
1970
2474
|
|
1971
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2475
|
+
<li class="missed" data-hits="0" data-linenumber="129">
|
1972
2476
|
|
1973
2477
|
|
1974
2478
|
<code class="ruby"> @code = Integer(code)</code>
|
1975
2479
|
</li>
|
1976
2480
|
|
1977
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2481
|
+
<li class="missed" data-hits="0" data-linenumber="130">
|
1978
2482
|
|
1979
2483
|
|
1980
2484
|
<code class="ruby"> @receipt = receipt</code>
|
1981
2485
|
</li>
|
1982
2486
|
|
1983
|
-
<li class="never" data-hits="" data-linenumber="
|
2487
|
+
<li class="never" data-hits="" data-linenumber="131">
|
1984
2488
|
|
1985
2489
|
|
1986
2490
|
<code class="ruby"> end</code>
|
1987
2491
|
</li>
|
1988
2492
|
|
1989
|
-
<li class="never" data-hits="" data-linenumber="
|
2493
|
+
<li class="never" data-hits="" data-linenumber="132">
|
1990
2494
|
|
1991
2495
|
|
1992
2496
|
<code class="ruby"></code>
|
1993
2497
|
</li>
|
1994
2498
|
|
1995
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2499
|
+
<li class="covered" data-hits="1" data-linenumber="133">
|
1996
2500
|
<span class="hits">1</span>
|
1997
2501
|
|
1998
2502
|
<code class="ruby"> def message</code>
|
1999
2503
|
</li>
|
2000
2504
|
|
2001
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2505
|
+
<li class="missed" data-hits="0" data-linenumber="134">
|
2002
2506
|
|
2003
2507
|
|
2004
2508
|
<code class="ruby"> case @code</code>
|
2005
2509
|
</li>
|
2006
2510
|
|
2007
|
-
<li class="never" data-hits="" data-linenumber="
|
2511
|
+
<li class="never" data-hits="" data-linenumber="135">
|
2008
2512
|
|
2009
2513
|
|
2010
2514
|
<code class="ruby"> when 21000</code>
|
2011
2515
|
</li>
|
2012
2516
|
|
2013
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2517
|
+
<li class="missed" data-hits="0" data-linenumber="136">
|
2014
2518
|
|
2015
2519
|
|
2016
2520
|
<code class="ruby"> "The App Store could not read the JSON object you provided."</code>
|
2017
2521
|
</li>
|
2018
2522
|
|
2019
|
-
<li class="never" data-hits="" data-linenumber="
|
2523
|
+
<li class="never" data-hits="" data-linenumber="137">
|
2020
2524
|
|
2021
2525
|
|
2022
2526
|
<code class="ruby"> when 21002</code>
|
2023
2527
|
</li>
|
2024
2528
|
|
2025
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2529
|
+
<li class="missed" data-hits="0" data-linenumber="138">
|
2026
2530
|
|
2027
2531
|
|
2028
2532
|
<code class="ruby"> "The data in the receipt-data property was malformed."</code>
|
2029
2533
|
</li>
|
2030
2534
|
|
2031
|
-
<li class="never" data-hits="" data-linenumber="
|
2535
|
+
<li class="never" data-hits="" data-linenumber="139">
|
2032
2536
|
|
2033
2537
|
|
2034
2538
|
<code class="ruby"> when 21003</code>
|
2035
2539
|
</li>
|
2036
2540
|
|
2037
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2541
|
+
<li class="missed" data-hits="0" data-linenumber="140">
|
2038
2542
|
|
2039
2543
|
|
2040
2544
|
<code class="ruby"> "The receipt could not be authenticated."</code>
|
2041
2545
|
</li>
|
2042
2546
|
|
2043
|
-
<li class="never" data-hits="" data-linenumber="
|
2547
|
+
<li class="never" data-hits="" data-linenumber="141">
|
2044
2548
|
|
2045
2549
|
|
2046
2550
|
<code class="ruby"> when 21004</code>
|
2047
2551
|
</li>
|
2048
2552
|
|
2049
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2553
|
+
<li class="missed" data-hits="0" data-linenumber="142">
|
2050
2554
|
|
2051
2555
|
|
2052
2556
|
<code class="ruby"> "The shared secret you provided does not match the shared secret on file for your account."</code>
|
2053
2557
|
</li>
|
2054
2558
|
|
2055
|
-
<li class="never" data-hits="" data-linenumber="
|
2559
|
+
<li class="never" data-hits="" data-linenumber="143">
|
2056
2560
|
|
2057
2561
|
|
2058
2562
|
<code class="ruby"> when 21005</code>
|
2059
2563
|
</li>
|
2060
2564
|
|
2061
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2565
|
+
<li class="missed" data-hits="0" data-linenumber="144">
|
2062
2566
|
|
2063
2567
|
|
2064
2568
|
<code class="ruby"> "The receipt server is not currently available."</code>
|
2065
2569
|
</li>
|
2066
2570
|
|
2067
|
-
<li class="never" data-hits="" data-linenumber="
|
2571
|
+
<li class="never" data-hits="" data-linenumber="145">
|
2068
2572
|
|
2069
2573
|
|
2070
2574
|
<code class="ruby"> when 21006</code>
|
2071
2575
|
</li>
|
2072
2576
|
|
2073
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2577
|
+
<li class="missed" data-hits="0" data-linenumber="146">
|
2074
2578
|
|
2075
2579
|
|
2076
2580
|
<code class="ruby"> "This receipt is valid but the subscription has expired. When this status code is returned to your server, the receipt data is also decoded and returned as part of the response."</code>
|
2077
2581
|
</li>
|
2078
2582
|
|
2079
|
-
<li class="never" data-hits="" data-linenumber="
|
2583
|
+
<li class="never" data-hits="" data-linenumber="147">
|
2080
2584
|
|
2081
2585
|
|
2082
2586
|
<code class="ruby"> when 21007</code>
|
2083
2587
|
</li>
|
2084
2588
|
|
2085
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2589
|
+
<li class="missed" data-hits="0" data-linenumber="148">
|
2086
2590
|
|
2087
2591
|
|
2088
2592
|
<code class="ruby"> "This receipt is a sandbox receipt, but it was sent to the production service for verification."</code>
|
2089
2593
|
</li>
|
2090
2594
|
|
2091
|
-
<li class="never" data-hits="" data-linenumber="
|
2595
|
+
<li class="never" data-hits="" data-linenumber="149">
|
2092
2596
|
|
2093
2597
|
|
2094
2598
|
<code class="ruby"> when 21008</code>
|
2095
2599
|
</li>
|
2096
2600
|
|
2097
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2601
|
+
<li class="missed" data-hits="0" data-linenumber="150">
|
2098
2602
|
|
2099
2603
|
|
2100
2604
|
<code class="ruby"> "This receipt is a production receipt, but it was sent to the sandbox service for verification."</code>
|
2101
2605
|
</li>
|
2102
2606
|
|
2103
|
-
<li class="never" data-hits="" data-linenumber="
|
2607
|
+
<li class="never" data-hits="" data-linenumber="151">
|
2608
|
+
|
2609
|
+
|
2610
|
+
<code class="ruby"> when 21010</code>
|
2611
|
+
</li>
|
2612
|
+
|
2613
|
+
<li class="missed" data-hits="0" data-linenumber="152">
|
2614
|
+
|
2615
|
+
|
2616
|
+
<code class="ruby"> "This receipt could not be authorized. Treat this the same as if a purchase was never made."</code>
|
2617
|
+
</li>
|
2618
|
+
|
2619
|
+
<li class="never" data-hits="" data-linenumber="153">
|
2104
2620
|
|
2105
2621
|
|
2106
2622
|
<code class="ruby"> else</code>
|
2107
2623
|
</li>
|
2108
2624
|
|
2109
|
-
<li class="missed" data-hits="0" data-linenumber="
|
2625
|
+
<li class="missed" data-hits="0" data-linenumber="154">
|
2110
2626
|
|
2111
2627
|
|
2112
2628
|
<code class="ruby"> "Unknown Error: #{@code}"</code>
|
2113
2629
|
</li>
|
2114
2630
|
|
2115
|
-
<li class="never" data-hits="" data-linenumber="
|
2631
|
+
<li class="never" data-hits="" data-linenumber="155">
|
2116
2632
|
|
2117
2633
|
|
2118
2634
|
<code class="ruby"> end</code>
|
2119
2635
|
</li>
|
2120
2636
|
|
2121
|
-
<li class="never" data-hits="" data-linenumber="
|
2637
|
+
<li class="never" data-hits="" data-linenumber="156">
|
2122
2638
|
|
2123
2639
|
|
2124
2640
|
<code class="ruby"> end</code>
|
2125
2641
|
</li>
|
2126
2642
|
|
2127
|
-
<li class="never" data-hits="" data-linenumber="
|
2643
|
+
<li class="never" data-hits="" data-linenumber="157">
|
2128
2644
|
|
2129
2645
|
|
2130
2646
|
<code class="ruby"> end</code>
|
2131
2647
|
</li>
|
2132
2648
|
|
2133
|
-
<li class="never" data-hits="" data-linenumber="
|
2649
|
+
<li class="never" data-hits="" data-linenumber="158">
|
2134
2650
|
|
2135
2651
|
|
2136
2652
|
<code class="ruby"> end</code>
|
2137
2653
|
</li>
|
2138
2654
|
|
2139
|
-
<li class="never" data-hits="" data-linenumber="
|
2655
|
+
<li class="never" data-hits="" data-linenumber="159">
|
2140
2656
|
|
2141
2657
|
|
2142
2658
|
<code class="ruby">end</code>
|
@@ -2145,6 +2661,44 @@
|
|
2145
2661
|
</ol>
|
2146
2662
|
</pre>
|
2147
2663
|
</div>
|
2664
|
+
|
2665
|
+
|
2666
|
+
<div class="source_table" id="cb684cfb744e20e9f55e0ef69140ba65fee90e3b">
|
2667
|
+
<div class="header">
|
2668
|
+
<h3>lib/venice/version.rb</h3>
|
2669
|
+
<h4><span class="green">100.0 %</span> covered</h4>
|
2670
|
+
<div>
|
2671
|
+
<b>2</b> relevant lines.
|
2672
|
+
<span class="green"><b>2</b> lines covered</span> and
|
2673
|
+
<span class="red"><b>0</b> lines missed.</span>
|
2674
|
+
</div>
|
2675
|
+
</div>
|
2676
|
+
|
2677
|
+
<pre>
|
2678
|
+
<ol>
|
2679
|
+
|
2680
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
2681
|
+
<span class="hits">1</span>
|
2682
|
+
|
2683
|
+
<code class="ruby">module Venice</code>
|
2684
|
+
</li>
|
2685
|
+
|
2686
|
+
<li class="covered" data-hits="1" data-linenumber="2">
|
2687
|
+
<span class="hits">1</span>
|
2688
|
+
|
2689
|
+
<code class="ruby"> VERSION = "0.4.0"</code>
|
2690
|
+
</li>
|
2691
|
+
|
2692
|
+
<li class="never" data-hits="" data-linenumber="3">
|
2693
|
+
|
2694
|
+
|
2695
|
+
<code class="ruby">end</code>
|
2696
|
+
</li>
|
2697
|
+
|
2698
|
+
</ol>
|
2699
|
+
</pre>
|
2700
|
+
</div>
|
2701
|
+
|
2148
2702
|
|
2149
2703
|
</div>
|
2150
2704
|
</div>
|