tinypass 0.0.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.
Files changed (85) hide show
  1. checksums.yaml +15 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +20 -0
  4. data/.rspec +2 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +32 -0
  8. data/Rakefile +19 -0
  9. data/lib/.DS_Store +0 -0
  10. data/lib/tinypass.rb +48 -0
  11. data/lib/tinypass/.DS_Store +0 -0
  12. data/lib/tinypass/builder.rb +7 -0
  13. data/lib/tinypass/builder/client_builder.rb +40 -0
  14. data/lib/tinypass/builder/client_parser.rb +48 -0
  15. data/lib/tinypass/builder/cookie_parser.rb +25 -0
  16. data/lib/tinypass/builder/json_msg_builder.rb +115 -0
  17. data/lib/tinypass/builder/open_encoder.rb +11 -0
  18. data/lib/tinypass/builder/secure_encoder.rb +15 -0
  19. data/lib/tinypass/builder/security_utils.rb +67 -0
  20. data/lib/tinypass/gateway.rb +104 -0
  21. data/lib/tinypass/offer.rb +23 -0
  22. data/lib/tinypass/policies.rb +5 -0
  23. data/lib/tinypass/policies/discount_policy.rb +25 -0
  24. data/lib/tinypass/policies/policy.rb +25 -0
  25. data/lib/tinypass/policies/pricing_policy.rb +13 -0
  26. data/lib/tinypass/policies/restriction_policy.rb +14 -0
  27. data/lib/tinypass/price_option.rb +66 -0
  28. data/lib/tinypass/resource.rb +17 -0
  29. data/lib/tinypass/token.rb +6 -0
  30. data/lib/tinypass/token/access_token.rb +163 -0
  31. data/lib/tinypass/token/access_token_list.rb +71 -0
  32. data/lib/tinypass/token/access_token_store.rb +59 -0
  33. data/lib/tinypass/token/meter.rb +76 -0
  34. data/lib/tinypass/token/meter_helper.rb +82 -0
  35. data/lib/tinypass/token/token_data.rb +72 -0
  36. data/lib/tinypass/ui.rb +2 -0
  37. data/lib/tinypass/ui/html_widget.rb +29 -0
  38. data/lib/tinypass/ui/purchase_request.rb +34 -0
  39. data/lib/tinypass/utils.rb +34 -0
  40. data/lib/tinypass/version.rb +3 -0
  41. data/spec/.DS_Store +0 -0
  42. data/spec/acceptance/basic_workflow_spec.rb +81 -0
  43. data/spec/integration/.DS_Store +0 -0
  44. data/spec/integration/cases/.DS_Store +0 -0
  45. data/spec/integration/cases/basic_spec.rb +53 -0
  46. data/spec/integration/cases/combo_spec.rb +43 -0
  47. data/spec/integration/cases/metered_reminder_spec.rb +42 -0
  48. data/spec/integration/cases/metered_strict_spec.rb +54 -0
  49. data/spec/integration/cases/metered_views_spec.rb +92 -0
  50. data/spec/integration/client_builder_and_parser_spec.rb +21 -0
  51. data/spec/spec_helper.rb +33 -0
  52. data/spec/support/.DS_Store +0 -0
  53. data/spec/support/acceptance.rb +13 -0
  54. data/spec/support/tinypass_factories.rb +25 -0
  55. data/spec/unit/.DS_Store +0 -0
  56. data/spec/unit/builder/.DS_Store +0 -0
  57. data/spec/unit/builder/client_builder_spec.rb +23 -0
  58. data/spec/unit/builder/client_parser_spec.rb +27 -0
  59. data/spec/unit/builder/cookie_parser_spec.rb +39 -0
  60. data/spec/unit/builder/json_msg_builder_spec.rb +73 -0
  61. data/spec/unit/builder/open_encoder_spec.rb +15 -0
  62. data/spec/unit/builder/secure_encoder_spec.rb +23 -0
  63. data/spec/unit/builder/security_utils_spec.rb +42 -0
  64. data/spec/unit/gateway_spec.rb +80 -0
  65. data/spec/unit/offer_spec.rb +31 -0
  66. data/spec/unit/policies/.DS_Store +0 -0
  67. data/spec/unit/policies/discount_policy_spec.rb +40 -0
  68. data/spec/unit/policies/pricing_policy_spec.rb +23 -0
  69. data/spec/unit/policies/restriction_policy_spec.rb +35 -0
  70. data/spec/unit/price_option_spec.rb +109 -0
  71. data/spec/unit/resource_spec.rb +24 -0
  72. data/spec/unit/tinypass_spec.rb +51 -0
  73. data/spec/unit/token/.DS_Store +0 -0
  74. data/spec/unit/token/access_token_list_spec.rb +94 -0
  75. data/spec/unit/token/access_token_spec.rb +267 -0
  76. data/spec/unit/token/access_token_store_spec.rb +93 -0
  77. data/spec/unit/token/meter_helper_spec.rb +103 -0
  78. data/spec/unit/token/meter_spec.rb +66 -0
  79. data/spec/unit/token/token_data_spec.rb +66 -0
  80. data/spec/unit/ui/.DS_Store +0 -0
  81. data/spec/unit/ui/html_widget_spec.rb +89 -0
  82. data/spec/unit/ui/purchase_request_spec.rb +46 -0
  83. data/spec/unit/utils_spec.rb +57 -0
  84. data/tinypass.gemspec +35 -0
  85. metadata +330 -0
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tinypass::Utils do
4
+ describe "#parse_loose_period_in_msecs" do
5
+ it "throws an exception with unknown strings" do
6
+ expect{ Tinypass::Utils.parse_loose_period_in_msecs("???") }.to raise_error ArgumentError
7
+ end
8
+
9
+ it "interprets numbers" do
10
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("10000")).to eq 10000
11
+ end
12
+
13
+ it "interprets negative numbers" do
14
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("-10000")).to eq(-10000)
15
+ end
16
+
17
+ it "interprets milliseconds" do
18
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 ms")).to eq 123
19
+ end
20
+
21
+ it "interprets seconds" do
22
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 s")).to eq 123 * 1000
23
+ end
24
+
25
+ it "interprets minutes" do
26
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 mi")).to eq 123 * 1000 * 60
27
+ end
28
+
29
+ it "interprets hours" do
30
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 h")).to eq 123 * 1000 * 60 * 60
31
+ end
32
+
33
+ it "interprets days" do
34
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 d")).to eq 123 * 1000 * 60 * 60 * 24
35
+ end
36
+
37
+ it "interprets weeks" do
38
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 w")).to eq 123 * 1000 * 60 * 60 * 24 * 7
39
+ end
40
+
41
+ it "interprets months" do
42
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 mo")).to eq 123 * 1000 * 60 * 60 * 24 * 30
43
+ end
44
+
45
+ it "interprets years" do
46
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("123 y")).to eq 123 * 1000 * 60 * 60 * 24 * 365
47
+ end
48
+
49
+ it "skips digits" do
50
+ expect(Tinypass::Utils.parse_loose_period_in_msecs("112211")).to eq 112211
51
+ end
52
+
53
+ it "skips integers" do
54
+ expect(Tinypass::Utils.parse_loose_period_in_msecs(112211)).to eq 112211
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'tinypass/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "tinypass"
8
+ spec.version = Tinypass::VERSION
9
+ spec.authors = ["Taavo Smith"]
10
+ spec.email = ["taavo@dd9.com"]
11
+ spec.description = "Tinypass Ruby SDK"
12
+ spec.summary = "Tinypass Ruby SDK"
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "rest-client", "~> 1.4"
22
+ spec.add_dependency "multi_json", ">= 1.0.4", "< 2"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "nokogiri"
26
+ spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "rspec"
28
+ spec.add_development_dependency "pry"
29
+ spec.add_development_dependency "simplecov"
30
+ spec.add_development_dependency "webmock"
31
+
32
+ # used only for acceptance tests
33
+ spec.add_development_dependency "poltergeist"
34
+ spec.add_development_dependency "dotenv"
35
+ end
metadata ADDED
@@ -0,0 +1,330 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tinypass
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Taavo Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: multi_json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.4
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ version: '2'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.4
44
+ - - <
45
+ - !ruby/object:Gem::Version
46
+ version: '2'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.3'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '1.3'
61
+ - !ruby/object:Gem::Dependency
62
+ name: nokogiri
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: pry
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: simplecov
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: webmock
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: poltergeist
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: dotenv
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ description: Tinypass Ruby SDK
174
+ email:
175
+ - taavo@dd9.com
176
+ executables: []
177
+ extensions: []
178
+ extra_rdoc_files: []
179
+ files:
180
+ - .DS_Store
181
+ - .gitignore
182
+ - .rspec
183
+ - Gemfile
184
+ - LICENSE.txt
185
+ - README.md
186
+ - Rakefile
187
+ - lib/.DS_Store
188
+ - lib/tinypass.rb
189
+ - lib/tinypass/.DS_Store
190
+ - lib/tinypass/builder.rb
191
+ - lib/tinypass/builder/client_builder.rb
192
+ - lib/tinypass/builder/client_parser.rb
193
+ - lib/tinypass/builder/cookie_parser.rb
194
+ - lib/tinypass/builder/json_msg_builder.rb
195
+ - lib/tinypass/builder/open_encoder.rb
196
+ - lib/tinypass/builder/secure_encoder.rb
197
+ - lib/tinypass/builder/security_utils.rb
198
+ - lib/tinypass/gateway.rb
199
+ - lib/tinypass/offer.rb
200
+ - lib/tinypass/policies.rb
201
+ - lib/tinypass/policies/discount_policy.rb
202
+ - lib/tinypass/policies/policy.rb
203
+ - lib/tinypass/policies/pricing_policy.rb
204
+ - lib/tinypass/policies/restriction_policy.rb
205
+ - lib/tinypass/price_option.rb
206
+ - lib/tinypass/resource.rb
207
+ - lib/tinypass/token.rb
208
+ - lib/tinypass/token/access_token.rb
209
+ - lib/tinypass/token/access_token_list.rb
210
+ - lib/tinypass/token/access_token_store.rb
211
+ - lib/tinypass/token/meter.rb
212
+ - lib/tinypass/token/meter_helper.rb
213
+ - lib/tinypass/token/token_data.rb
214
+ - lib/tinypass/ui.rb
215
+ - lib/tinypass/ui/html_widget.rb
216
+ - lib/tinypass/ui/purchase_request.rb
217
+ - lib/tinypass/utils.rb
218
+ - lib/tinypass/version.rb
219
+ - spec/.DS_Store
220
+ - spec/acceptance/basic_workflow_spec.rb
221
+ - spec/integration/.DS_Store
222
+ - spec/integration/cases/.DS_Store
223
+ - spec/integration/cases/basic_spec.rb
224
+ - spec/integration/cases/combo_spec.rb
225
+ - spec/integration/cases/metered_reminder_spec.rb
226
+ - spec/integration/cases/metered_strict_spec.rb
227
+ - spec/integration/cases/metered_views_spec.rb
228
+ - spec/integration/client_builder_and_parser_spec.rb
229
+ - spec/spec_helper.rb
230
+ - spec/support/.DS_Store
231
+ - spec/support/acceptance.rb
232
+ - spec/support/tinypass_factories.rb
233
+ - spec/unit/.DS_Store
234
+ - spec/unit/builder/.DS_Store
235
+ - spec/unit/builder/client_builder_spec.rb
236
+ - spec/unit/builder/client_parser_spec.rb
237
+ - spec/unit/builder/cookie_parser_spec.rb
238
+ - spec/unit/builder/json_msg_builder_spec.rb
239
+ - spec/unit/builder/open_encoder_spec.rb
240
+ - spec/unit/builder/secure_encoder_spec.rb
241
+ - spec/unit/builder/security_utils_spec.rb
242
+ - spec/unit/gateway_spec.rb
243
+ - spec/unit/offer_spec.rb
244
+ - spec/unit/policies/.DS_Store
245
+ - spec/unit/policies/discount_policy_spec.rb
246
+ - spec/unit/policies/pricing_policy_spec.rb
247
+ - spec/unit/policies/restriction_policy_spec.rb
248
+ - spec/unit/price_option_spec.rb
249
+ - spec/unit/resource_spec.rb
250
+ - spec/unit/tinypass_spec.rb
251
+ - spec/unit/token/.DS_Store
252
+ - spec/unit/token/access_token_list_spec.rb
253
+ - spec/unit/token/access_token_spec.rb
254
+ - spec/unit/token/access_token_store_spec.rb
255
+ - spec/unit/token/meter_helper_spec.rb
256
+ - spec/unit/token/meter_spec.rb
257
+ - spec/unit/token/token_data_spec.rb
258
+ - spec/unit/ui/.DS_Store
259
+ - spec/unit/ui/html_widget_spec.rb
260
+ - spec/unit/ui/purchase_request_spec.rb
261
+ - spec/unit/utils_spec.rb
262
+ - tinypass.gemspec
263
+ homepage: ''
264
+ licenses:
265
+ - MIT
266
+ metadata: {}
267
+ post_install_message:
268
+ rdoc_options: []
269
+ require_paths:
270
+ - lib
271
+ required_ruby_version: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ! '>='
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
276
+ required_rubygems_version: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - ! '>='
279
+ - !ruby/object:Gem::Version
280
+ version: '0'
281
+ requirements: []
282
+ rubyforge_project:
283
+ rubygems_version: 2.1.11
284
+ signing_key:
285
+ specification_version: 4
286
+ summary: Tinypass Ruby SDK
287
+ test_files:
288
+ - spec/.DS_Store
289
+ - spec/acceptance/basic_workflow_spec.rb
290
+ - spec/integration/.DS_Store
291
+ - spec/integration/cases/.DS_Store
292
+ - spec/integration/cases/basic_spec.rb
293
+ - spec/integration/cases/combo_spec.rb
294
+ - spec/integration/cases/metered_reminder_spec.rb
295
+ - spec/integration/cases/metered_strict_spec.rb
296
+ - spec/integration/cases/metered_views_spec.rb
297
+ - spec/integration/client_builder_and_parser_spec.rb
298
+ - spec/spec_helper.rb
299
+ - spec/support/.DS_Store
300
+ - spec/support/acceptance.rb
301
+ - spec/support/tinypass_factories.rb
302
+ - spec/unit/.DS_Store
303
+ - spec/unit/builder/.DS_Store
304
+ - spec/unit/builder/client_builder_spec.rb
305
+ - spec/unit/builder/client_parser_spec.rb
306
+ - spec/unit/builder/cookie_parser_spec.rb
307
+ - spec/unit/builder/json_msg_builder_spec.rb
308
+ - spec/unit/builder/open_encoder_spec.rb
309
+ - spec/unit/builder/secure_encoder_spec.rb
310
+ - spec/unit/builder/security_utils_spec.rb
311
+ - spec/unit/gateway_spec.rb
312
+ - spec/unit/offer_spec.rb
313
+ - spec/unit/policies/.DS_Store
314
+ - spec/unit/policies/discount_policy_spec.rb
315
+ - spec/unit/policies/pricing_policy_spec.rb
316
+ - spec/unit/policies/restriction_policy_spec.rb
317
+ - spec/unit/price_option_spec.rb
318
+ - spec/unit/resource_spec.rb
319
+ - spec/unit/tinypass_spec.rb
320
+ - spec/unit/token/.DS_Store
321
+ - spec/unit/token/access_token_list_spec.rb
322
+ - spec/unit/token/access_token_spec.rb
323
+ - spec/unit/token/access_token_store_spec.rb
324
+ - spec/unit/token/meter_helper_spec.rb
325
+ - spec/unit/token/meter_spec.rb
326
+ - spec/unit/token/token_data_spec.rb
327
+ - spec/unit/ui/.DS_Store
328
+ - spec/unit/ui/html_widget_spec.rb
329
+ - spec/unit/ui/purchase_request_spec.rb
330
+ - spec/unit/utils_spec.rb