parking_ticket 1.0.47 → 1.0.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/.vscode/settings.json +3 -0
  4. data/Gemfile +0 -15
  5. data/Gemfile.lock +72 -4
  6. data/Rakefile +2 -2
  7. data/bin/console +3 -3
  8. data/bin/tapioca +29 -0
  9. data/lib/clients/models/payment_method.rb +15 -0
  10. data/lib/clients/models/quote.rb +16 -0
  11. data/lib/clients/models/rate_option.rb +19 -0
  12. data/lib/clients/models/structuraly_comparable.rb +14 -0
  13. data/lib/clients/models/ticket.rb +19 -0
  14. data/lib/clients/models/vehicle.rb +17 -0
  15. data/lib/clients/pay_by_phone/adapter.rb +106 -50
  16. data/lib/clients/pay_by_phone/client.rb +101 -38
  17. data/lib/parking_ticket/configuration.rb +3 -0
  18. data/lib/parking_ticket/version.rb +2 -1
  19. data/lib/parking_ticket.rb +79 -54
  20. data/sorbet/config +4 -0
  21. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  22. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  23. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  24. data/sorbet/rbi/gems/addressable@2.8.1.rbi +2000 -0
  25. data/sorbet/rbi/gems/amazing_print@1.4.0.rbi +872 -0
  26. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  27. data/sorbet/rbi/gems/crack@0.4.5.rbi +144 -0
  28. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  29. data/sorbet/rbi/gems/faraday-net_http@3.0.2.rbi +146 -0
  30. data/sorbet/rbi/gems/faraday@2.7.2.rbi +2518 -0
  31. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +350 -0
  32. data/sorbet/rbi/gems/json@2.6.3.rbi +1541 -0
  33. data/sorbet/rbi/gems/json_matchers@0.11.1.rbi +133 -0
  34. data/sorbet/rbi/gems/json_schema@0.21.0.rbi +1165 -0
  35. data/sorbet/rbi/gems/netrc@0.11.0.rbi +161 -0
  36. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  37. data/sorbet/rbi/gems/parser@3.2.2.0.rbi +7207 -0
  38. data/sorbet/rbi/gems/public_suffix@5.0.1.rbi +940 -0
  39. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  40. data/sorbet/rbi/gems/rake@13.0.6.rbi +2881 -0
  41. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3008 -0
  42. data/sorbet/rbi/gems/regexp_parser@2.7.0.rbi +3600 -0
  43. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4823 -0
  44. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +10826 -0
  45. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +8118 -0
  46. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +5300 -0
  47. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +1615 -0
  48. data/sorbet/rbi/gems/rspec@3.12.0.rbi +82 -0
  49. data/sorbet/rbi/gems/rubocop-ast@1.28.0.rbi +6985 -0
  50. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +1043 -0
  51. data/sorbet/rbi/gems/rubocop@1.48.1.rbi +54934 -0
  52. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  53. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  54. data/sorbet/rbi/gems/spoom@1.2.1.rbi +2503 -0
  55. data/sorbet/rbi/gems/tapioca@0.11.4.rbi +3212 -0
  56. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  57. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  58. data/sorbet/rbi/gems/unparser@0.6.7.rbi +4515 -0
  59. data/sorbet/rbi/gems/vcr@6.1.0.rbi +3023 -0
  60. data/sorbet/rbi/gems/webmock@3.18.1.rbi +1728 -0
  61. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2584 -0
  62. data/sorbet/rbi/gems/yard-sorbet@0.8.0.rbi +441 -0
  63. data/sorbet/rbi/gems/yard@0.9.28.rbi +17802 -0
  64. data/sorbet/tapioca/config.yml +13 -0
  65. data/sorbet/tapioca/require.rb +4 -0
  66. metadata +241 -4
  67. data/lib/clients/adapter.rb +0 -75
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,4 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parking_ticket
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.47
4
+ version: 1.0.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Ecrepont
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-26 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,196 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 2.7.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.7.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: amazing_print
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json_matchers
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '13.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '13.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-sorbet
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sorbet
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sorbet-runtime
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: tapioca
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: unparser
169
+ requirement: !ruby/object:Gem::Requirement
23
170
  requirements:
24
171
  - - ">="
25
172
  - !ruby/object:Gem::Version
26
173
  version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: vcr
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '6.0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '6.0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: webmock
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '3.12'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '3.12'
27
209
  description: Automatically renew your parking ticket when it expires.
28
210
  email:
29
211
  - tomecrepont@gmail.com
@@ -32,6 +214,8 @@ extensions: []
32
214
  extra_rdoc_files: []
33
215
  files:
34
216
  - ".rspec"
217
+ - ".rubocop.yml"
218
+ - ".vscode/settings.json"
35
219
  - CODE_OF_CONDUCT.md
36
220
  - Gemfile
37
221
  - Gemfile.lock
@@ -40,7 +224,13 @@ files:
40
224
  - Rakefile
41
225
  - bin/console
42
226
  - bin/setup
43
- - lib/clients/adapter.rb
227
+ - bin/tapioca
228
+ - lib/clients/models/payment_method.rb
229
+ - lib/clients/models/quote.rb
230
+ - lib/clients/models/rate_option.rb
231
+ - lib/clients/models/structuraly_comparable.rb
232
+ - lib/clients/models/ticket.rb
233
+ - lib/clients/models/vehicle.rb
44
234
  - lib/clients/pay_by_phone/adapter.rb
45
235
  - lib/clients/pay_by_phone/client.rb
46
236
  - lib/parking_ticket.rb
@@ -48,12 +238,59 @@ files:
48
238
  - lib/parking_ticket/version.rb
49
239
  - parking_ticket-1.0.0.gem
50
240
  - parking_ticket-1.0.1.gem
241
+ - sorbet/config
242
+ - sorbet/rbi/annotations/faraday.rbi
243
+ - sorbet/rbi/annotations/rainbow.rbi
244
+ - sorbet/rbi/annotations/webmock.rbi
245
+ - sorbet/rbi/gems/addressable@2.8.1.rbi
246
+ - sorbet/rbi/gems/amazing_print@1.4.0.rbi
247
+ - sorbet/rbi/gems/ast@2.4.2.rbi
248
+ - sorbet/rbi/gems/crack@0.4.5.rbi
249
+ - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
250
+ - sorbet/rbi/gems/faraday-net_http@3.0.2.rbi
251
+ - sorbet/rbi/gems/faraday@2.7.2.rbi
252
+ - sorbet/rbi/gems/hashdiff@1.0.1.rbi
253
+ - sorbet/rbi/gems/json@2.6.3.rbi
254
+ - sorbet/rbi/gems/json_matchers@0.11.1.rbi
255
+ - sorbet/rbi/gems/json_schema@0.21.0.rbi
256
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
257
+ - sorbet/rbi/gems/parallel@1.22.1.rbi
258
+ - sorbet/rbi/gems/parser@3.2.2.0.rbi
259
+ - sorbet/rbi/gems/public_suffix@5.0.1.rbi
260
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
261
+ - sorbet/rbi/gems/rake@13.0.6.rbi
262
+ - sorbet/rbi/gems/rbi@0.0.16.rbi
263
+ - sorbet/rbi/gems/regexp_parser@2.7.0.rbi
264
+ - sorbet/rbi/gems/rexml@3.2.5.rbi
265
+ - sorbet/rbi/gems/rspec-core@3.12.0.rbi
266
+ - sorbet/rbi/gems/rspec-expectations@3.12.1.rbi
267
+ - sorbet/rbi/gems/rspec-mocks@3.12.1.rbi
268
+ - sorbet/rbi/gems/rspec-support@3.12.0.rbi
269
+ - sorbet/rbi/gems/rspec@3.12.0.rbi
270
+ - sorbet/rbi/gems/rubocop-ast@1.28.0.rbi
271
+ - sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi
272
+ - sorbet/rbi/gems/rubocop@1.48.1.rbi
273
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
274
+ - sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
275
+ - sorbet/rbi/gems/spoom@1.2.1.rbi
276
+ - sorbet/rbi/gems/tapioca@0.11.4.rbi
277
+ - sorbet/rbi/gems/thor@1.2.1.rbi
278
+ - sorbet/rbi/gems/unicode-display_width@2.4.2.rbi
279
+ - sorbet/rbi/gems/unparser@0.6.7.rbi
280
+ - sorbet/rbi/gems/vcr@6.1.0.rbi
281
+ - sorbet/rbi/gems/webmock@3.18.1.rbi
282
+ - sorbet/rbi/gems/webrick@1.7.0.rbi
283
+ - sorbet/rbi/gems/yard-sorbet@0.8.0.rbi
284
+ - sorbet/rbi/gems/yard@0.9.28.rbi
285
+ - sorbet/tapioca/config.yml
286
+ - sorbet/tapioca/require.rb
51
287
  homepage: https://github.com/troptropcontent/parking_ticket
52
288
  licenses:
53
289
  - MIT
54
290
  metadata:
55
291
  homepage_uri: https://github.com/troptropcontent/parking_ticket
56
292
  source_code_uri: https://github.com/troptropcontent/parking_ticket
293
+ rubygems_mfa_required: 'true'
57
294
  post_install_message:
58
295
  rdoc_options: []
59
296
  require_paths:
@@ -1,75 +0,0 @@
1
- module ParkingTicket
2
- module Clients
3
- class Adapter
4
- class << self
5
- def parent_module
6
- const_get(name.split('::')[0..-2].join('::'))
7
- end
8
-
9
- def valid_credentials?(username, password)
10
- parent_module::Client.auth(username, password).status == 200
11
- end
12
- end
13
- class Error < StandardError
14
- end
15
-
16
- def initialize(username, password)
17
- @username = username
18
- @password = password
19
- end
20
-
21
- def vehicles
22
- raise_invalid_credentials! unless valid_credentials?
23
- fetch_and_map_vehicles
24
- end
25
-
26
- def rate_options(zipcode, license_plate)
27
- raise_invalid_credentials! unless valid_credentials?
28
- fetch_and_map_rate_options(zipcode, license_plate)
29
- end
30
-
31
- def running_ticket(license_plate, zipcode)
32
- raise_invalid_credentials! unless valid_credentials?
33
- fetch_and_map_running_ticket(license_plate, zipcode)
34
- end
35
-
36
- def payment_methods
37
- raise_invalid_credentials! unless valid_credentials?
38
- fetch_and_map_payment_methods
39
- end
40
-
41
- def quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
42
- raise_invalid_credentials! unless valid_credentials?
43
- fetch_and_map_quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
44
- end
45
-
46
- def new_ticket(license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, payment_method_id:)
47
- raise_invalid_credentials! unless valid_credentials?
48
- # return if running_ticket(license_plate, zipcode)
49
-
50
- request_new_ticket(
51
- license_plate: license_plate,
52
- zipcode: zipcode,
53
- rate_option_client_internal_id: rate_option_client_internal_id,
54
- quantity: quantity,
55
- time_unit: time_unit,
56
- payment_method_id: payment_method_id
57
- )
58
- end
59
-
60
- private
61
-
62
- def client
63
- @client ||= self.class.parent_module::Client.new(@username, @password)
64
- end
65
-
66
- def valid_credentials?
67
- @valid_credentials ||= self.class.valid_credentials?(@username, @password)
68
- end
69
-
70
- def raise_invalid_credentials!
71
- raise Error, 'Adapter credentials are not valid'
72
- end
73
- end
74
- end
75
- end