light_service_object 0.1.7 → 0.1.12
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 +4 -4
- data/Gemfile.lock +23 -23
- data/README.md +5 -2
- data/lib/light_service_object.rb +10 -8
- data/lib/light_service_object/version.rb +1 -1
- data/light_service_object.gemspec +3 -3
- metadata +16 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1ea1d00ece72f1a9f36a79c9b517dc82aa221bced9a62963920ea0db502201d1
|
|
4
|
+
data.tar.gz: e01b4289b44e837f55942b06305d937151b57496d393330839554e3f8ea227ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bfd6ad7047fd917f9ef5de75aba3dff65ecfeb0cecf499ffd76e8313d7c38d5512d2a7566b8b8c8a5b307ea7b7a8116b848ff2cc740fc87f515147f23fad943a
|
|
7
|
+
data.tar.gz: c5d7ec2bd6c933b705df7487b077cf55704d082d5e75a369b8998a692e43041f8f770b945a7440a953c6d98003a39816c02078d46fc4c3d89471e826ea854119
|
data/Gemfile.lock
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
light_service_object (0.1.
|
|
5
|
-
dry-initializer (
|
|
6
|
-
dry-monads (
|
|
4
|
+
light_service_object (0.1.12)
|
|
5
|
+
dry-initializer (>= 3.0)
|
|
6
|
+
dry-monads (>= 1.0)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
concurrent-ruby (1.1.
|
|
12
|
-
diff-lcs (1.
|
|
13
|
-
dry-core (0.
|
|
11
|
+
concurrent-ruby (1.1.9)
|
|
12
|
+
diff-lcs (1.4.4)
|
|
13
|
+
dry-core (0.6.0)
|
|
14
14
|
concurrent-ruby (~> 1.0)
|
|
15
|
-
dry-equalizer (0.
|
|
16
|
-
dry-initializer (
|
|
17
|
-
dry-monads (1.3.
|
|
15
|
+
dry-equalizer (0.3.0)
|
|
16
|
+
dry-initializer (3.0.4)
|
|
17
|
+
dry-monads (1.3.5)
|
|
18
18
|
concurrent-ruby (~> 1.0)
|
|
19
19
|
dry-core (~> 0.4, >= 0.4.4)
|
|
20
20
|
dry-equalizer
|
|
21
|
-
rake (
|
|
22
|
-
rspec (3.
|
|
23
|
-
rspec-core (~> 3.
|
|
24
|
-
rspec-expectations (~> 3.
|
|
25
|
-
rspec-mocks (~> 3.
|
|
26
|
-
rspec-core (3.
|
|
27
|
-
rspec-support (~> 3.
|
|
28
|
-
rspec-expectations (3.
|
|
21
|
+
rake (13.0.3)
|
|
22
|
+
rspec (3.10.0)
|
|
23
|
+
rspec-core (~> 3.10.0)
|
|
24
|
+
rspec-expectations (~> 3.10.0)
|
|
25
|
+
rspec-mocks (~> 3.10.0)
|
|
26
|
+
rspec-core (3.10.1)
|
|
27
|
+
rspec-support (~> 3.10.0)
|
|
28
|
+
rspec-expectations (3.10.1)
|
|
29
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
30
|
-
rspec-support (~> 3.
|
|
31
|
-
rspec-mocks (3.
|
|
30
|
+
rspec-support (~> 3.10.0)
|
|
31
|
+
rspec-mocks (3.10.2)
|
|
32
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
33
|
-
rspec-support (~> 3.
|
|
34
|
-
rspec-support (3.
|
|
33
|
+
rspec-support (~> 3.10.0)
|
|
34
|
+
rspec-support (3.10.2)
|
|
35
35
|
|
|
36
36
|
PLATFORMS
|
|
37
37
|
ruby
|
|
@@ -39,8 +39,8 @@ PLATFORMS
|
|
|
39
39
|
DEPENDENCIES
|
|
40
40
|
bundler (~> 2.0)
|
|
41
41
|
light_service_object!
|
|
42
|
-
rake (
|
|
42
|
+
rake (>= 12.3.3)
|
|
43
43
|
rspec (~> 3.0)
|
|
44
44
|
|
|
45
45
|
BUNDLED WITH
|
|
46
|
-
2.
|
|
46
|
+
2.2.15
|
data/README.md
CHANGED
|
@@ -54,8 +54,8 @@ class NewServiceObject < LightServiceObject::Base
|
|
|
54
54
|
optional :number
|
|
55
55
|
|
|
56
56
|
def perform
|
|
57
|
-
fail!("Date is too far away") if date - Date.today >= 7
|
|
58
|
-
|
|
57
|
+
fail!("Date is too far away") if date - Date.today >= 7
|
|
58
|
+
|
|
59
59
|
number + 10
|
|
60
60
|
end
|
|
61
61
|
end
|
|
@@ -67,6 +67,9 @@ end
|
|
|
67
67
|
- the last thing evaluated will be returned as the result `number + 10`
|
|
68
68
|
- one side note: all parameters are immutable by default
|
|
69
69
|
|
|
70
|
+
### Why is it Light?
|
|
71
|
+
|
|
72
|
+
It really is just a plain-old-ruby-object (PORO) with `Dry::Initializer` throw in with some syntax grease, and returns a `Dry::Monads::Result` -- that's it.
|
|
70
73
|
|
|
71
74
|
## Contributing
|
|
72
75
|
|
data/lib/light_service_object.rb
CHANGED
|
@@ -21,7 +21,10 @@ if defined?(Ensurance)
|
|
|
21
21
|
end
|
|
22
22
|
klass = klass.klass if klass.is_a?(ActiveRecord::Relation)
|
|
23
23
|
|
|
24
|
-
coercer =
|
|
24
|
+
coercer = options[:optional] ?
|
|
25
|
+
->(value) { klass.ensure(value) } :
|
|
26
|
+
->(value) { klass.ensure!(value) }
|
|
27
|
+
|
|
25
28
|
options.merge(type: coercer)
|
|
26
29
|
end
|
|
27
30
|
|
|
@@ -48,7 +51,8 @@ module LightServiceObject
|
|
|
48
51
|
|
|
49
52
|
def option(*args, **opts, &block)
|
|
50
53
|
if opts.delete(:mutable)
|
|
51
|
-
|
|
54
|
+
name = opts[:as] || args.first
|
|
55
|
+
self.send("attr_writer", name)
|
|
52
56
|
end
|
|
53
57
|
super(*args, **opts, &block)
|
|
54
58
|
end
|
|
@@ -70,12 +74,10 @@ module LightServiceObject
|
|
|
70
74
|
end
|
|
71
75
|
|
|
72
76
|
def call(**options)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
Dry::Monads.Failure(error.message)
|
|
78
|
-
end
|
|
77
|
+
obj = self.new(**options)
|
|
78
|
+
obj.call
|
|
79
|
+
rescue Exception => error
|
|
80
|
+
Dry::Monads.Failure(error.message)
|
|
79
81
|
end
|
|
80
82
|
end
|
|
81
83
|
|
|
@@ -24,9 +24,9 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.require_paths = ["lib"]
|
|
25
25
|
|
|
26
26
|
spec.add_development_dependency "bundler", "~> 2.0"
|
|
27
|
-
spec.add_development_dependency "rake", "
|
|
27
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
|
28
28
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
29
29
|
|
|
30
|
-
spec.add_dependency "dry-initializer", "
|
|
31
|
-
spec.add_dependency "dry-monads", "
|
|
30
|
+
spec.add_dependency "dry-initializer", ">= 3.0"
|
|
31
|
+
spec.add_dependency "dry-monads", ">= 1.0"
|
|
32
32
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: light_service_object
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Sharpe
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-07-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -28,16 +28,16 @@ dependencies:
|
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 12.3.3
|
|
34
34
|
type: :development
|
|
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:
|
|
40
|
+
version: 12.3.3
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -56,28 +56,28 @@ dependencies:
|
|
|
56
56
|
name: dry-initializer
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '3.0'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '3.0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: dry-monads
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
75
|
version: '1.0'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '1.0'
|
|
83
83
|
description: 'Service object based on DRY.rb components for speed and less boilerplate '
|
|
@@ -106,7 +106,7 @@ homepage: https://github.com/bsharpe/light_service_object
|
|
|
106
106
|
licenses:
|
|
107
107
|
- MIT
|
|
108
108
|
metadata: {}
|
|
109
|
-
post_install_message:
|
|
109
|
+
post_install_message:
|
|
110
110
|
rdoc_options: []
|
|
111
111
|
require_paths:
|
|
112
112
|
- lib
|
|
@@ -121,8 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
122
|
version: '0'
|
|
123
123
|
requirements: []
|
|
124
|
-
rubygems_version: 3.
|
|
125
|
-
signing_key:
|
|
124
|
+
rubygems_version: 3.2.15
|
|
125
|
+
signing_key:
|
|
126
126
|
specification_version: 4
|
|
127
127
|
summary: A lightweight base service object for Rails/Ruby
|
|
128
128
|
test_files: []
|