evil-client 2.1.1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -4
- data/CHANGELOG.md +12 -0
- data/evil-client.gemspec +2 -2
- data/lib/evil/client.rb +0 -1
- data/lib/evil/client/model.rb +0 -2
- data/spec/features/operation/options_spec.rb +6 -6
- data/spec/features/scope/options_spec.rb +4 -4
- data/spec/unit/model_spec.rb +3 -3
- data/spec/unit/settings_spec.rb +3 -3
- metadata +4 -7
- data/lib/evil/client/exceptions/validation_error.rb +0 -27
- data/spec/unit/exceptions/validation_error_spec.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7421a1b4c64b31e781aa9a7b8468d2590bbdb89a
|
4
|
+
data.tar.gz: accdb2d3b7687f9e2729a319bd52059f0c13f656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7e681e013572dca96e759387b5c4fa3462e4dcd78f173376628fd620e839e2e388409f1f57cb97157e7a16b431e925dbd2ef5f5593627c6e1a89223a74ed9ec
|
7
|
+
data.tar.gz: a5327b283c6481d972dd9f0c3939200e55c1b6e9021d918997cb6cc3a956b3d2612d47228c3e4ad6cb77a6c03b198a891300b477dff7d5ea980f02daae8b1a1e
|
data/.rubocop.yml
CHANGED
@@ -6,6 +6,10 @@ AllCops:
|
|
6
6
|
Lint/AmbiguousBlockAssociation:
|
7
7
|
Enabled: false
|
8
8
|
|
9
|
+
Naming/FileName:
|
10
|
+
Exclude:
|
11
|
+
- lib/evil-client.rb
|
12
|
+
|
9
13
|
Metrics/BlockLength:
|
10
14
|
Enabled: false
|
11
15
|
|
@@ -18,10 +22,6 @@ Style/ClassAndModuleChildren:
|
|
18
22
|
Style/DateTime:
|
19
23
|
Enabled: false
|
20
24
|
|
21
|
-
Style/FileName:
|
22
|
-
Exclude:
|
23
|
-
- lib/evil-client.rb
|
24
|
-
|
25
25
|
Style/FrozenStringLiteralComment:
|
26
26
|
Enabled: false
|
27
27
|
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog], and this project adheres
|
5
5
|
to [Semantic Versioning].
|
6
6
|
|
7
|
+
## [3.0.0] [2018-01-05]
|
8
|
+
|
9
|
+
### [BREAKING] Changed
|
10
|
+
|
11
|
+
- Stop re-raising exceptions in model constructors, and remove `Evil::Client::ValidationError` (nepalez)
|
12
|
+
|
13
|
+
Instead of ValidationError, the original StandardError exceptions will be risen.
|
14
|
+
|
15
|
+
See [the issue #22 by Envek](https://github.com/evilmartians/evil-client/issues/22)
|
16
|
+
|
7
17
|
## [2.1.1] [2018-01-05]
|
8
18
|
|
9
19
|
### Changed
|
@@ -447,3 +457,5 @@ formats will be added.
|
|
447
457
|
[1.1.0]: https://github.com/evilmartians/evil-client/compare/v1.0.0...v1.1.0
|
448
458
|
[2.0.0]: https://github.com/evilmartians/evil-client/compare/v1.1.0...v2.0.0
|
449
459
|
[2.1.0]: https://github.com/evilmartians/evil-client/compare/v2.0.0...v2.1.0
|
460
|
+
[2.1.1]: https://github.com/evilmartians/evil-client/compare/v2.1.0...v2.1.1
|
461
|
+
[3.0.0]: https://github.com/evilmartians/evil-client/compare/v2.1.1...v3.0.0
|
data/evil-client.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = "evil-client"
|
3
|
-
gem.version = "
|
3
|
+
gem.version = "3.0.0"
|
4
4
|
gem.author = ["Andrew Kozin (nepalez)", "Ravil Bairamgalin (brainopia)"]
|
5
5
|
gem.email = ["andrew.kozin@gmail.com", "nepalez@evilmartians.com"]
|
6
6
|
gem.homepage = "https://github.com/evilmartians/evil-client"
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.add_runtime_dependency "dry-initializer", "~> 2.1"
|
17
17
|
gem.add_runtime_dependency "mime-types", "~> 3.1"
|
18
18
|
gem.add_runtime_dependency "rack", "~> 2"
|
19
|
-
gem.add_runtime_dependency "tram-policy", "~> 0.
|
19
|
+
gem.add_runtime_dependency "tram-policy", "~> 0.3.0"
|
20
20
|
|
21
21
|
gem.add_development_dependency "rake", ">= 10"
|
22
22
|
gem.add_development_dependency "rspec", "~> 3.0"
|
data/lib/evil/client.rb
CHANGED
@@ -25,7 +25,6 @@ module Evil
|
|
25
25
|
require_relative "client/exceptions/name_error"
|
26
26
|
require_relative "client/exceptions/response_error"
|
27
27
|
require_relative "client/exceptions/type_error"
|
28
|
-
require_relative "client/exceptions/validation_error"
|
29
28
|
|
30
29
|
require_relative "client/chaining"
|
31
30
|
require_relative "client/options"
|
data/lib/evil/client/model.rb
CHANGED
@@ -93,8 +93,6 @@ class Evil::Client
|
|
93
93
|
def new(op = {})
|
94
94
|
op = Hash(op).each_with_object({}) { |(k, v), obj| obj[k.to_sym] = v }
|
95
95
|
super(op).tap { |item| in_english { policy[item].validate! } }
|
96
|
-
rescue StandardError => error
|
97
|
-
raise ValidationError, error.message
|
98
96
|
end
|
99
97
|
alias call new
|
100
98
|
alias [] call
|
@@ -48,24 +48,24 @@ RSpec.describe "operation options" do
|
|
48
48
|
context "when required options missed" do
|
49
49
|
subject { users.operations[:create].new(language: "it") }
|
50
50
|
|
51
|
-
it "raises
|
52
|
-
expect { subject }.to raise_error
|
51
|
+
it "raises StandardError" do
|
52
|
+
expect { subject }.to raise_error StandardError, /name/
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
context "when operation validation failed" do
|
57
57
|
subject { users.operations[:filter].new }
|
58
58
|
|
59
|
-
it "raises
|
60
|
-
expect { subject }.to raise_error
|
59
|
+
it "raises StandardError" do
|
60
|
+
expect { subject }.to raise_error StandardError, /id/
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
64
|
context "when scope validation failed" do
|
65
65
|
subject { users.operations[:fetch].new id: 8, token: nil }
|
66
66
|
|
67
|
-
it "raises
|
68
|
-
expect { subject }.to raise_error
|
67
|
+
it "raises StandardError" do
|
68
|
+
expect { subject }.to raise_error StandardError, /token/
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
@@ -35,18 +35,18 @@ RSpec.describe "scope options" do
|
|
35
35
|
context "when required options missed" do
|
36
36
|
subject { client.crm }
|
37
37
|
|
38
|
-
it "raises
|
38
|
+
it "raises StandardError" do
|
39
39
|
expect { subject }
|
40
|
-
.to raise_error
|
40
|
+
.to raise_error StandardError, /version/
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
context "when some validation failed" do
|
45
45
|
subject { crm.users(token: nil) }
|
46
46
|
|
47
|
-
it "raises
|
47
|
+
it "raises StandardError" do
|
48
48
|
expect { subject }
|
49
|
-
.to raise_error
|
49
|
+
.to raise_error StandardError, /token/
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
data/spec/unit/model_spec.rb
CHANGED
@@ -69,7 +69,7 @@ RSpec.describe Evil::Client::Model do
|
|
69
69
|
it "adds validation for an instance" do
|
70
70
|
# see spec/fixtures/locale/en.yml
|
71
71
|
expect { model }
|
72
|
-
.to raise_error(
|
72
|
+
.to raise_error(StandardError, /The user has no name/)
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -79,8 +79,8 @@ RSpec.describe Evil::Client::Model do
|
|
79
79
|
context "with wrong options" do
|
80
80
|
before { klass.option :user, as: :customer }
|
81
81
|
|
82
|
-
it "raises
|
83
|
-
expect { subject }.to raise_error
|
82
|
+
it "raises StandardError" do
|
83
|
+
expect { subject }.to raise_error StandardError, /user/
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
data/spec/unit/settings_spec.rb
CHANGED
@@ -98,7 +98,7 @@ RSpec.describe Evil::Client::Settings do
|
|
98
98
|
it "adds validation for an instance" do
|
99
99
|
# see spec/fixtures/locale/en.yml
|
100
100
|
expect { settings }
|
101
|
-
.to raise_error(
|
101
|
+
.to raise_error(StandardError, /The user has no name/)
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -161,8 +161,8 @@ RSpec.describe Evil::Client::Settings do
|
|
161
161
|
context "with wrong options" do
|
162
162
|
before { klass.option :user, as: :customer }
|
163
163
|
|
164
|
-
it "raises
|
165
|
-
expect { subject }.to raise_error
|
164
|
+
it "raises StandardError" do
|
165
|
+
expect { subject }.to raise_error StandardError, /user/
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evil-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kozin (nepalez)
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-01-
|
12
|
+
date: 2018-01-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dry-initializer
|
@@ -59,14 +59,14 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.3.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.3.0
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rake
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -205,7 +205,6 @@ files:
|
|
205
205
|
- lib/evil/client/exceptions/name_error.rb
|
206
206
|
- lib/evil/client/exceptions/response_error.rb
|
207
207
|
- lib/evil/client/exceptions/type_error.rb
|
208
|
-
- lib/evil/client/exceptions/validation_error.rb
|
209
208
|
- lib/evil/client/formatter.rb
|
210
209
|
- lib/evil/client/formatter/form.rb
|
211
210
|
- lib/evil/client/formatter/multipart.rb
|
@@ -259,7 +258,6 @@ files:
|
|
259
258
|
- spec/unit/exceptions/name_error_spec.rb
|
260
259
|
- spec/unit/exceptions/response_error_spec.rb
|
261
260
|
- spec/unit/exceptions/type_error_spec.rb
|
262
|
-
- spec/unit/exceptions/validation_error_spec.rb
|
263
261
|
- spec/unit/formatter/form_spec.rb
|
264
262
|
- spec/unit/formatter/multipart_spec.rb
|
265
263
|
- spec/unit/formatter/part_spec.rb
|
@@ -333,7 +331,6 @@ test_files:
|
|
333
331
|
- spec/unit/exceptions/name_error_spec.rb
|
334
332
|
- spec/unit/exceptions/response_error_spec.rb
|
335
333
|
- spec/unit/exceptions/type_error_spec.rb
|
336
|
-
- spec/unit/exceptions/validation_error_spec.rb
|
337
334
|
- spec/unit/formatter/form_spec.rb
|
338
335
|
- spec/unit/formatter/multipart_spec.rb
|
339
336
|
- spec/unit/formatter/part_spec.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
class Evil::Client
|
2
|
-
#
|
3
|
-
# Exception to be risen when scope or operation cannot be initialized
|
4
|
-
# due to some options or their composition are invalid
|
5
|
-
#
|
6
|
-
class ValidationError < ArgumentError
|
7
|
-
private
|
8
|
-
|
9
|
-
def initialize(key, scope = nil, **options)
|
10
|
-
scope = "evil.client.errors.#{scope}"
|
11
|
-
.split(".")
|
12
|
-
.map { |part| __underscore__(part) }
|
13
|
-
|
14
|
-
super key.is_a?(Symbol) ? I18n.t(key, scope: scope, **options) : key
|
15
|
-
end
|
16
|
-
|
17
|
-
def __underscore__(name)
|
18
|
-
name.dup.tap do |n|
|
19
|
-
n.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
20
|
-
n.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
|
21
|
-
n.gsub!("::", "/")
|
22
|
-
n.tr!("-", "_")
|
23
|
-
n.downcase!
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
RSpec.describe Evil::Client::ValidationError, "#message" do
|
2
|
-
let(:error) { described_class.new key, scope, options }
|
3
|
-
let(:key) { :token_present }
|
4
|
-
let(:scope) { "Test::Api.users.update" }
|
5
|
-
let(:options) { { id: 3, name: "Andrew" } }
|
6
|
-
|
7
|
-
subject { error.message }
|
8
|
-
|
9
|
-
it "builds a proper error message" do
|
10
|
-
# see spec/fixtures/locales/en.yml
|
11
|
-
expect(subject).to eq "To update user id:3 you must provide a token"
|
12
|
-
end
|
13
|
-
end
|