light_service_object 0.1.7 → 0.1.12

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: e700271db3a2b52514ce8b2174a4f955c1926c70b60f370ecdcd69e71698b4dc
4
- data.tar.gz: d13ece90b9a57c819b6b028ec19a0dc88d60af261883c8862bffe7d856b09986
3
+ metadata.gz: 1ea1d00ece72f1a9f36a79c9b517dc82aa221bced9a62963920ea0db502201d1
4
+ data.tar.gz: e01b4289b44e837f55942b06305d937151b57496d393330839554e3f8ea227ad
5
5
  SHA512:
6
- metadata.gz: '095296979110b150d06f473690212b2a9085e6595367622649b01eea8b3f4a1df6be9d56b3d9288ac2e60a40fe72faa997197ed34cf3cfc92dc06ed6e86be8c1'
7
- data.tar.gz: 6dac101c8261634d7c099d9ba73505e539021b91a26c9c4f6d7685345bf99eb93197d1772015a359decbfd60c6818a0e775ad62088a577172bee6db248c9fa7a
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.7)
5
- dry-initializer (~> 2.0)
6
- dry-monads (~> 1.0)
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.5)
12
- diff-lcs (1.3)
13
- dry-core (0.4.9)
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.2.2)
16
- dry-initializer (2.5.0)
17
- dry-monads (1.3.1)
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 (10.5.0)
22
- rspec (3.8.0)
23
- rspec-core (~> 3.8.0)
24
- rspec-expectations (~> 3.8.0)
25
- rspec-mocks (~> 3.8.0)
26
- rspec-core (3.8.2)
27
- rspec-support (~> 3.8.0)
28
- rspec-expectations (3.8.4)
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.8.0)
31
- rspec-mocks (3.8.1)
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.8.0)
34
- rspec-support (3.8.2)
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 (~> 10.0)
42
+ rake (>= 12.3.3)
43
43
  rspec (~> 3.0)
44
44
 
45
45
  BUNDLED WITH
46
- 2.0.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
 
@@ -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 = ->(value) { klass.ensure(value) }
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
- self.send("attr_writer", args.first)
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
- begin
74
- obj = self.new(**options)
75
- obj.call
76
- rescue KeyError => error
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
 
@@ -1,3 +1,3 @@
1
1
  module LightServiceObject
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.12"
3
3
  end
@@ -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", "~> 10.0"
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", "~> 2.0"
31
- spec.add_dependency "dry-monads", "~> 1.0"
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.7
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: 2019-10-14 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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: '2.0'
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: '2.0'
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.0.6
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: []