janio_api 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91d85f8a1ab6814c4c4b8eb6ec69b436330384f45b788ff833387fb11d44d174
4
- data.tar.gz: e098b9a86980679c69d5a697b9e0978cdf20c129dc00b6cc7228a9d222144523
3
+ metadata.gz: 318f3d3a08f7f85b5b3f658b6ab54644f748f05eaeb0a4c13ab214375a79be0d
4
+ data.tar.gz: feb8eaa1e12ef20c0dc222a87e53faec9b147748578b2d00735a428436ffa25a
5
5
  SHA512:
6
- metadata.gz: c25cb39853f1566b4abdc8570e6f534dbd77157eeae20479de9ce62d1b77022dd5759aedd0e4c6db644ba8ed4b30a504d787ab03ba19920fd83d77eff37b7ad8
7
- data.tar.gz: 93a94c79dd8f34efb86fc9bffed84915455028161ca06deb1401131d40e6e95212b5291b88d6e18a0731e8ee2cac90f6e890bda7320ab55d22dec67d09ff56cd
6
+ metadata.gz: 4cb07c9fc3dd6f6fbc4077e06031b02adf5c6ee9ef85979e83661ebe6454a2b513ef035c34fd5f92fb1a86eb9c191565c9750697546a54d798a88f910443cca4
7
+ data.tar.gz: 7322287b9ccba118c513a3ceac69eafadbaa96b83c73c071ca28957066da6ae034e187c377bd1d1e5e65ef40af04427b2f911a45f2643617dace35f02a548045
data/.gitignore CHANGED
@@ -6,8 +6,10 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /Gemfile.lock
10
+ /.vscode
9
11
 
10
12
  # rspec failure tracking
11
13
  .rspec_status
12
14
  .env
13
- .pryrc
15
+ .pryrc
data/janio_api.gemspec CHANGED
@@ -26,9 +26,9 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.add_dependency "activeresource"
30
- spec.add_dependency "countries"
31
- spec.add_dependency "phonelib"
29
+ spec.add_dependency "activeresource", "~> 5.0"
30
+ spec.add_dependency "countries", "~> 3.0"
31
+ spec.add_dependency "phonelib", "~> 0.6"
32
32
 
33
33
  spec.add_development_dependency "rspec", "~> 3.2"
34
34
  spec.add_development_dependency "dotenv"
@@ -10,6 +10,7 @@ loader.collapse("./lib/janio_api/resources")
10
10
  loader.ignore("#{__dir__}/config.rb")
11
11
  loader.ignore("./lib/janio_api/exceptions.rb")
12
12
  loader.ignore("./lib/janio_api/services_list.rb")
13
+ loader.ignore("./lib/janio_api/postal_code_regex.rb")
13
14
  loader.enable_reloading
14
15
  # loader.log!
15
16
  loader.setup
data/lib/janio_api.rb CHANGED
@@ -6,6 +6,7 @@ module JanioAPI
6
6
  require "countries"
7
7
 
8
8
  require "janio_api/services_list"
9
+ require "janio_api/postal_code_regex_list"
9
10
 
10
11
  require "janio_api/configuration"
11
12
 
@@ -0,0 +1,190 @@
1
+ module JanioAPI
2
+ POSTAL_CODE_REGEX = {
3
+ AC: "^(ASCN 1ZZ)$",
4
+ AD: "^(?:AD)*(\\d{3})$",
5
+ AF: "^(\\d{4})$",
6
+ AG: "^(\\d{5})$",
7
+ AI: "^(AI-2640)$",
8
+ AL: "^(\\d{4})$",
9
+ AM: "^(\\d{4})$",
10
+ AQ: "^(7151)$",
11
+ AR: "^([A-Z]\\d{4}[A-Z]{3})|([A-Z]?\\d{4})$",
12
+ AS: "^(\\d{5})$",
13
+ AT: "^(\\d{4})$",
14
+ AU: "^(\\d{4})$",
15
+ AW: "^(0000 AW)$",
16
+ AX: "^(\\d{5})$",
17
+ AZ: "^(AZ) (\\d{4})$",
18
+ BA: "^(\\d{5})$",
19
+ BB: "^(?:BB)*(\\d{5})$",
20
+ BD: "^(\\d{4})$",
21
+ BE: "^(\\d{4})$",
22
+ BG: "^(\\d{4})$",
23
+ BH: "^(\\d{3}\\d?)$",
24
+ BL: "^(\\d{5})$",
25
+ BM: "^([A-Z]{2} \\d{2})$",
26
+ BN: "^([A-Z]{2}\\d{4})$",
27
+ BQ: "^(0000 BQ)$",
28
+ BR: "^[0-9]{5}-[0-9]{3}$",
29
+ BT: "^(\\d{5})$",
30
+ BY: "^(\\d{6})$",
31
+ CA: "^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] +?[0-9][A-Z][0-9]$",
32
+ CC: "^(6799 W3)$",
33
+ CH: "^(\\d{4})$",
34
+ CL: "^(\\d{7})$",
35
+ CN: "^(\\d{6})$",
36
+ CO: "^(\\d{6})$",
37
+ CR: "^(\\d{5})$",
38
+ CU: "^(?:CP)*(\\d{5})$",
39
+ CV: "^(\\d{4})$",
40
+ CW: "^(0000 CW)$",
41
+ CX: "^(6978)$",
42
+ CY: "^(\\d{4})$",
43
+ CZ: "^[0-9]{3} [0-9]{2}$",
44
+ DE: "^(\\d{5})$",
45
+ DK: "^(\\d{4})$",
46
+ DO: "^(\\d{5})$",
47
+ DZ: "^(\\d{5})$",
48
+ EC: "^(\\d{6})$",
49
+ EE: "^(\\d{5})$",
50
+ EG: "^(\\d{5})$",
51
+ EH: "^(\\d{5})$",
52
+ ES: "^(\\d{5})$",
53
+ ET: "^(\\d{4})$",
54
+ FI: "^(?:FI)*(\\d{5})$",
55
+ FK: "^(FIQQ 1ZZ)$",
56
+ FM: "^(\\d{5})$",
57
+ FO: "^(?:FO)*(\\d{3})$",
58
+ FR: "^(\\d{5})$",
59
+ GB: "^(((([A-PR-UWYZ][0-9][0-9A-HJKS-UW]?)|([A-PR-UWYZ][A-HK-Y][0-9][0-9ABEHMNPRV-Y]?))\\s{0,2}[0-9]([ABD-HJLNP-UW-Z]{2}))|(GIR\\s{0,2}0AA))$",
60
+ GE: "^(\\d{4})$",
61
+ GF: "^((973)\\d{2})$",
62
+ GG: "((GY)([0-9][0-9A-HJKPS-UW]?|[A-HK-Y][0-9][0-9ABEHMNPRV-Y]?) [0-9][ABD-HJLNP-UW-Z]{2})",
63
+ GI: "^(GX11 1AA)$",
64
+ GL: "^(\\d{4})$",
65
+ GN: "^(\\d{3})$",
66
+ GP: "^((971)[0-9][0-0])$",
67
+ GR: "^(\\d{3}) \\d{2}$",
68
+ GS: "^(SIQQ 1ZZ)$",
69
+ GT: "^(\\d{5})$",
70
+ GU: "^((969)[1-3][0-2])$",
71
+ GW: "^(\\d{4})$",
72
+ HK: "^(999077)$",
73
+ HM: "^(7151)$",
74
+ HN: "^(\\d{5})$",
75
+ HR: "^(?:HR)*(\\d{5})$",
76
+ HT: "^(?:HT)*(\\d{4})$",
77
+ HU: "^(\\d{4})$",
78
+ ID: "^(\\d{5})$",
79
+ IE: "^[A-NP-Z\\d]{3}\\s[A-NP-Z\\d]{4}",
80
+ IL: "^(\\d{5})$",
81
+ IM: "((IM)([0-9][0-9A-HJKPS-UW]?|[A-HK-Y][0-9][0-9ABEHMNPRV-Y]?) [0-9][ABD-HJLNP-UW-Z]{2})",
82
+ IN: "^(\\d{6})$",
83
+ IO: "^(BB9D 1ZZ)$",
84
+ IQ: "^(\\d{5})$",
85
+ IR: "^\\d{5}([\\-]\\d{5})?$",
86
+ IS: "^(\\d{3})$",
87
+ IT: "^(\\d{5})$",
88
+ JE: "(JE)([0-9]\\d{1})",
89
+ JM: "^((JM)[A-Z]{3,3}\\d{2,2})$",
90
+ JO: "^(\\d{5})$",
91
+ JP: "^(\\d{3}-\\d{4})$",
92
+ KE: "^(\\d{5})$",
93
+ KG: "^(\\d{6})$",
94
+ KH: "^(\\d{5})$",
95
+ KR: "^(\\d{3}[-]\\d{3})$",
96
+ KW: "^(\\d{5})$",
97
+ KY: "^[K][Y][0-9]{1}[-]([0-9]){4}$",
98
+ KZ: "^(\\d{6})$",
99
+ LA: "^(\\d{5})$",
100
+ LB: "^(\\d{4}(\\d{4})?)$",
101
+ LI: "^(\\d{4})$",
102
+ LK: "^(\\d{5})$",
103
+ LR: "^(\\d{4})$",
104
+ LS: "^(\\d{3})$",
105
+ LT: "^(?:LT)*(\\d{5})$",
106
+ LU: "^(\\d{4})$",
107
+ LV: "^[L]{1}[V]{1}[-]([0-9]){4}$",
108
+ LY: "^(\\d{5})$",
109
+ MA: "^(\\d{5})$",
110
+ MC: "^(\\d{5})$",
111
+ MD: "^(?:MD)*(\\d{4})$",
112
+ ME: "^(\\d{5})$",
113
+ MF: "^(\\d{5})$",
114
+ MG: "^(\\d{3})$",
115
+ MH: "^((969)[6-7][0-9])$",
116
+ MK: "^(\\d{4})$",
117
+ MM: "^(\\d{5})$",
118
+ MN: "^(\\d{5})$",
119
+ MP: "^(\\d{5})$",
120
+ MQ: "^(\\d{5})$",
121
+ MT: "^[A-Z]{3} [0-9]{4}$",
122
+ MU: "^([0-9A-Z]\\d{4})$",
123
+ MV: "^(\\d{5})$",
124
+ MX: "^(\\d{5})$",
125
+ MY: "^(\\d{5})$",
126
+ MZ: "^(\\d{4})$",
127
+ NC: "^(\\d{5})$",
128
+ NE: "^(\\d{4})$",
129
+ NF: "^(2899)$",
130
+ NG: "^(\\d{6})$",
131
+ NI: "^(\\d{5})$",
132
+ NL: "[0-9]{4} ?[A-Z]{2}",
133
+ NO: "^(\\d{4})$",
134
+ NP: "^(\\d{5})$",
135
+ NZ: "^(\\d{4})$",
136
+ OM: "^(\\d{3})$",
137
+ PE: "^(\\d{5})$",
138
+ PF: "^((987)\\d{2})$",
139
+ PG: "^(\\d{3})$",
140
+ PH: "^(\\d{4})$",
141
+ PK: "^(\\d{5})$",
142
+ PL: "^[0-9]{2}[-]([0-9]){3}$",
143
+ PM: "^(\\d{5})$",
144
+ PN: "^(PCR9 1ZZ)$",
145
+ PR: "^\\d{5}((-|\\s)?\\d{4})?$",
146
+ PS: "^(\\d{5})$",
147
+ PT: "^\\d{4}((-|\\s)?\\d{3})?$",
148
+ PW: "^(96940)$",
149
+ PY: "^(\\d{4})$",
150
+ RE: "[9]{1}[7|8][4|7|8]\\d{2}",
151
+ RO: "^(\\d{6})$",
152
+ RS: "^(\\d{5})$",
153
+ RU: "^(\\d{6})$",
154
+ SA: "^(\\d{5})$",
155
+ SD: "^(\\d{5})$",
156
+ SE: "^(\\d{3} \\d{2})$",
157
+ SG: "^(\\d{6})$",
158
+ SH: "^[A-Z]{4} (1ZZ)$",
159
+ SI: "^(\\d{4})$",
160
+ SJ: "^(\\d{4})$",
161
+ SK: "^(\\d{3} \\d{2})$",
162
+ SM: "^(4789\\d)$",
163
+ SN: "^(\\d{5})$",
164
+ SS: "^(\\d{5})$",
165
+ SV: "^(01101)$",
166
+ SX: "^(0000 AA)$",
167
+ SZ: "^([A-Z]\\d{3})$",
168
+ TC: "^(TKCA 1ZZ)$",
169
+ TD: "^(\\d{5})$",
170
+ TF: "^((984)\\d{2})$",
171
+ TH: "^(\\d{5})$",
172
+ TJ: "^(\\d{3})$",
173
+ TM: "^(\\d{6})$",
174
+ TN: "^(\\d{4})$",
175
+ TR: "^(\\d{5})$",
176
+ TW: "^(\\d{3} \\d{2})|(\\d{3})$",
177
+ UA: "^(\\d{5})$",
178
+ US: "^\\d{5}([\\-]\\d{4})?$",
179
+ UY: "^(\\d{5})$",
180
+ UZ: "^(\\d{6})$",
181
+ VC: "(VC)(\\d{4})",
182
+ VE: "^(\\d{4})$",
183
+ VG: "^(VG11)[0-6][0]$",
184
+ VI: "^(\\d{5})$",
185
+ VN: "^(\\d{6})$",
186
+ YT: "^(\\d{5})$",
187
+ ZA: "^(\\d{4})$",
188
+ ZM: "^(\\d{5})$"
189
+ }
190
+ end
@@ -64,7 +64,6 @@ module JanioAPI
64
64
 
65
65
  validates :pickup_date, presence: true, if: -> { PICKUP_DATE_ACCEPTED_COUNTRIES.include?(pickup_country) }
66
66
  validates :pickup_date, absence: true, if: -> { !PICKUP_DATE_ACCEPTED_COUNTRIES.include?(pickup_country) }
67
-
68
67
  validates :pickup_country, inclusion: {
69
68
  in: SUPPORTED_PICKUP_COUNTRIES,
70
69
  message: "%{value} is not a supported pickup country, supported countries are #{SUPPORTED_PICKUP_COUNTRIES.join(", ")}"
@@ -73,14 +72,14 @@ module JanioAPI
73
72
  in: SUPPORTED_CONSIGNEE_COUNTRIES,
74
73
  message: "%{value} is not a supported consignee country, supported countries are #{SUPPORTED_CONSIGNEE_COUNTRIES.join(", ")}"
75
74
  }
76
- validates :consignee_postal, presence: true, unless: -> { POSTAL_EXCLUDED_COUNTRIES.include?(consignee_country) }
77
- validates :pickup_postal, presence: true, unless: -> { POSTAL_EXCLUDED_COUNTRIES.include?(pickup_country) }
78
75
  validates :payment_type, inclusion: {
79
76
  in: VALID_PAYMENT_TYPES,
80
77
  message: "%{value} is not a valid payment type, valid payment types are #{VALID_PAYMENT_TYPES.join(", ")}"
81
78
  }
82
79
  validates :cod_amount_to_collect, presence: true, if: -> { payment_type == "cod" }
83
80
  validates :items, length: {minimum: 1, message: "are required. Please add at least one."}
81
+ validate :pickup_postal_valid?, unless: -> { POSTAL_EXCLUDED_COUNTRIES.include?(pickup_country) }
82
+ validate :consignee_postal_valid?, unless: -> { POSTAL_EXCLUDED_COUNTRIES.include?(consignee_country) }
84
83
  validate :pickup_contact_number_country_matched?
85
84
  validate :consignee_number_country_matched?
86
85
  validate :items_validation
@@ -183,22 +182,42 @@ module JanioAPI
183
182
 
184
183
  private
185
184
 
185
+ def pickup_country_code
186
+ ISO3166::Country.find_country_by_name(pickup_country)&.alpha2
187
+ end
188
+
189
+ def consignee_country_code
190
+ ISO3166::Country.find_country_by_name(consignee_country)&.alpha2
191
+ end
192
+
193
+ def pickup_postal_valid?
194
+ if pickup_country_code
195
+ regex = Regexp.new(POSTAL_CODE_REGEX[pickup_country_code.to_sym])
196
+ errors.add(:pickup_postal, "is invalid, must match #{regex.inspect}") unless regex.match(pickup_postal)
197
+ end
198
+ end
199
+
200
+ def consignee_postal_valid?
201
+ if consignee_country_code && POSTAL_CODE_REGEX[consignee_country_code.to_sym]
202
+ regex = Regexp.new(POSTAL_CODE_REGEX[consignee_country_code.to_sym])
203
+ errors.add(:consignee_postal, "is invalid, must match #{regex.inspect}") unless regex.match(consignee_postal)
204
+ end
205
+ end
206
+
186
207
  def pickup_contact_number_country_matched?
187
- country_code = ISO3166::Country.find_country_by_name(pickup_country)&.alpha2
188
- if Phonelib.invalid_for_country? pickup_contact_number, country_code
208
+ if Phonelib.invalid_for_country?(pickup_contact_number, pickup_country_code)
189
209
  errors.add(
190
210
  :pickup_contact_number,
191
- "is invalid, please make sure the phone's country code matches the pickup address's country"
211
+ "is invalid, please make sure the phone is valid and phone's country code matches the pickup address's country"
192
212
  )
193
213
  end
194
214
  end
195
215
 
196
216
  def consignee_number_country_matched?
197
- country_code = ISO3166::Country.find_country_by_name(consignee_country)&.alpha2
198
- if Phonelib.invalid_for_country? consignee_number, country_code
217
+ if Phonelib.invalid_for_country?(consignee_number, consignee_country_code)
199
218
  errors.add(
200
219
  :consignee_number,
201
- "is invalid, please make sure the phone's country code matches the consignee address's country"
220
+ "is invalid, please make sure the phone is valid and phone's country code matches the consignee address's country"
202
221
  )
203
222
  end
204
223
  end
@@ -1,3 +1,3 @@
1
1
  module JanioAPI
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: janio_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Chong
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-17 00:00:00.000000000 Z
11
+ date: 2020-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '5.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: countries
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: phonelib
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -135,7 +135,6 @@ files:
135
135
  - ".travis.yml"
136
136
  - CODE_OF_CONDUCT.md
137
137
  - Gemfile
138
- - Gemfile.lock
139
138
  - Guardfile
140
139
  - LICENSE.txt
141
140
  - README.md
@@ -148,6 +147,7 @@ files:
148
147
  - lib/janio_api.rb
149
148
  - lib/janio_api/configuration.rb
150
149
  - lib/janio_api/connection.rb
150
+ - lib/janio_api/postal_code_regex_list.rb
151
151
  - lib/janio_api/redirect_fetcher.rb
152
152
  - lib/janio_api/resources/base.rb
153
153
  - lib/janio_api/resources/item.rb
data/Gemfile.lock DELETED
@@ -1,113 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- janio_api (0.3.5)
5
- activeresource
6
- countries
7
- phonelib
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- activemodel (6.0.2.2)
13
- activesupport (= 6.0.2.2)
14
- activemodel-serializers-xml (1.0.2)
15
- activemodel (> 5.x)
16
- activesupport (> 5.x)
17
- builder (~> 3.1)
18
- activeresource (5.1.0)
19
- activemodel (>= 5.0, < 7)
20
- activemodel-serializers-xml (~> 1.0)
21
- activesupport (>= 5.0, < 7)
22
- activesupport (6.0.2.2)
23
- concurrent-ruby (~> 1.0, >= 1.0.2)
24
- i18n (>= 0.7, < 2)
25
- minitest (~> 5.1)
26
- tzinfo (~> 1.1)
27
- zeitwerk (~> 2.2)
28
- builder (3.2.4)
29
- byebug (11.1.1)
30
- coderay (1.1.2)
31
- concurrent-ruby (1.1.6)
32
- countries (3.0.0)
33
- i18n_data (~> 0.8.0)
34
- sixarm_ruby_unaccent (~> 1.1)
35
- unicode_utils (~> 1.4)
36
- diff-lcs (1.3)
37
- dotenv (2.7.5)
38
- ffi (1.12.2)
39
- formatador (0.2.5)
40
- guard (2.16.2)
41
- formatador (>= 0.2.4)
42
- listen (>= 2.7, < 4.0)
43
- lumberjack (>= 1.0.12, < 2.0)
44
- nenv (~> 0.1)
45
- notiffany (~> 0.0)
46
- pry (>= 0.9.12)
47
- shellany (~> 0.0)
48
- thor (>= 0.18.1)
49
- guard-compat (1.2.1)
50
- guard-rspec (4.7.3)
51
- guard (~> 2.1)
52
- guard-compat (~> 1.1)
53
- rspec (>= 2.99.0, < 4.0)
54
- i18n (1.8.2)
55
- concurrent-ruby (~> 1.0)
56
- i18n_data (0.8.0)
57
- listen (3.2.1)
58
- rb-fsevent (~> 0.10, >= 0.10.3)
59
- rb-inotify (~> 0.9, >= 0.9.10)
60
- lumberjack (1.2.4)
61
- method_source (1.0.0)
62
- minitest (5.14.0)
63
- nenv (0.3.0)
64
- notiffany (0.1.3)
65
- nenv (~> 0.1)
66
- shellany (~> 0.0)
67
- phonelib (0.6.43)
68
- pry (0.13.1)
69
- coderay (~> 1.1)
70
- method_source (~> 1.0)
71
- pry-byebug (3.9.0)
72
- byebug (~> 11.0)
73
- pry (~> 0.13.0)
74
- rake (12.3.3)
75
- rb-fsevent (0.10.3)
76
- rb-inotify (0.10.1)
77
- ffi (~> 1.0)
78
- rspec (3.9.0)
79
- rspec-core (~> 3.9.0)
80
- rspec-expectations (~> 3.9.0)
81
- rspec-mocks (~> 3.9.0)
82
- rspec-core (3.9.1)
83
- rspec-support (~> 3.9.1)
84
- rspec-expectations (3.9.1)
85
- diff-lcs (>= 1.2.0, < 2.0)
86
- rspec-support (~> 3.9.0)
87
- rspec-mocks (3.9.1)
88
- diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.9.0)
90
- rspec-support (3.9.2)
91
- shellany (0.0.1)
92
- sixarm_ruby_unaccent (1.2.0)
93
- thor (1.0.1)
94
- thread_safe (0.3.6)
95
- tzinfo (1.2.7)
96
- thread_safe (~> 0.1)
97
- unicode_utils (1.4.0)
98
- zeitwerk (2.3.0)
99
-
100
- PLATFORMS
101
- ruby
102
-
103
- DEPENDENCIES
104
- dotenv
105
- guard-rspec
106
- janio_api!
107
- pry
108
- pry-byebug
109
- rake (~> 12.3)
110
- rspec (~> 3.2)
111
-
112
- BUNDLED WITH
113
- 2.1.4