janio_api 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml 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