use_cases 0.3.4 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +2 -0
- data/lib/use_cases/rspec/matchers.rb +1 -1
- data/lib/use_cases/step_adapters/abstract.rb +2 -2
- data/lib/use_cases/validate.rb +7 -2
- data/lib/use_cases/version.rb +1 -1
- data/lib/use_cases.rb +5 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad9722f48d9d6f073a9699cb042c246d935994b4384e340e3b985c35ea6a697b
|
4
|
+
data.tar.gz: 8d3cc6daeef1b64fb86a96a9e6ff13a3b95ef328ff2a4e453696cae0724a1572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aefef04cfa79694d593848a6c245ad3d282416fdf28de6a934581f8fa15bfadf1faf5fccf1624a272b997473619af36841464feb8b1f26b6329ee8333a688e4b
|
7
|
+
data.tar.gz: 00bb31d99dfd4e9f1d98d99778b1263e4d32949dc5270af41f78d19dba6a460afeba44797219984dcbe964c516c150e2c0ee1db1392645760de14a7599ae2876
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
# UseCases
|
6
6
|
|
7
|
+
## Currently Unstable! Use at your own risk.
|
8
|
+
|
7
9
|
`UseCases` is a gem based on the [dry-transaction](https://dry-rb.org/gems/dry-transaction/) DSL that implements macros commonly used internally by Ring Twice.
|
8
10
|
|
9
11
|
`UseCases` does not however use `dry-transaction` behind the scenes. Instead it relies on other `dry` libraries like [dry-validation](https://dry-rb.org/gems/dry-validation/), [dry-events](https://dry-rb.org/gems/dry-validation/) and [dry-monads](https://dry-rb.org/gems/dry-validation/) to implement a DSL that can be flexible enough for our needs.
|
@@ -9,7 +9,7 @@ RSpec::Matchers.define(:be_failure_with_code) do |expected_code|
|
|
9
9
|
end
|
10
10
|
|
11
11
|
failure_message do |test_subject|
|
12
|
-
if
|
12
|
+
if test_subject.failure?
|
13
13
|
"the use case was expected to fail with code #{expected_code} but it returned #{test_subject.failure.first}"
|
14
14
|
else
|
15
15
|
"the use case was expected to fail with code #{expected_code} but it did not fail"
|
@@ -55,13 +55,13 @@ module UseCases
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def callable_proc
|
58
|
-
callable_object.method(callable_method)
|
58
|
+
callable_object.method(callable_method).to_proc
|
59
59
|
end
|
60
60
|
|
61
61
|
def callable_object
|
62
62
|
case options[:with]
|
63
63
|
when NilClass, FalseClass then object
|
64
|
-
when String
|
64
|
+
when String, Symbol then object.send(options[:with])
|
65
65
|
else options[:with]
|
66
66
|
end
|
67
67
|
end
|
data/lib/use_cases/validate.rb
CHANGED
@@ -61,9 +61,14 @@ module UseCases
|
|
61
61
|
def validate(params, current_user)
|
62
62
|
return Failure([:validation_error, "*params* must be a hash."]) unless params.respond_to?(:merge)
|
63
63
|
|
64
|
-
validation = contract.call(params
|
64
|
+
validation = contract.call(params)
|
65
65
|
|
66
|
-
validation.success?
|
66
|
+
if validation.success?
|
67
|
+
params.merge!(validation.to_h)
|
68
|
+
Success(validation.to_h)
|
69
|
+
else
|
70
|
+
Failure([:validation_error, validation.errors.to_h])
|
71
|
+
end
|
67
72
|
end
|
68
73
|
|
69
74
|
def contract
|
data/lib/use_cases/version.rb
CHANGED
data/lib/use_cases.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: use_cases
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ring Twice
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|