light_service_object 0.1.6 → 0.1.7

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: 6a4e68067319da840f48462ed29d2fdb32314e14c78c543f6e978b345d2d87b7
4
- data.tar.gz: 0fb567f252a98e5bef84d9d2b7db469e86b6b9bdce13038dd701f703c5be474d
3
+ metadata.gz: e700271db3a2b52514ce8b2174a4f955c1926c70b60f370ecdcd69e71698b4dc
4
+ data.tar.gz: d13ece90b9a57c819b6b028ec19a0dc88d60af261883c8862bffe7d856b09986
5
5
  SHA512:
6
- metadata.gz: edb266a2036ce57aba328e8c7fe3925b1955accd7537c4cdf7ff8ea14111eaa1234c33c974d611909031869998a648277abff83f4e3431e4391e14443da172f3
7
- data.tar.gz: 9e6faf7bd3f116726ab2260401f7d5e9b03c41135c377bf46f37a498ad6c57026928590c147feb442c3b681cbf8c755e4207dbc00b2981869bb70a7ccafb20e0
6
+ metadata.gz: '095296979110b150d06f473690212b2a9085e6595367622649b01eea8b3f4a1df6be9d56b3d9288ac2e60a40fe72faa997197ed34cf3cfc92dc06ed6e86be8c1'
7
+ data.tar.gz: 6dac101c8261634d7c099d9ba73505e539021b91a26c9c4f6d7685345bf99eb93197d1772015a359decbfd60c6818a0e775ad62088a577172bee6db248c9fa7a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- light_service_object (0.1.6)
4
+ light_service_object (0.1.7)
5
5
  dry-initializer (~> 2.0)
6
6
  dry-monads (~> 1.0)
7
7
 
@@ -1,3 +1,3 @@
1
1
  module LightServiceObject
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -30,11 +30,12 @@ if defined?(Ensurance)
30
30
  end
31
31
 
32
32
  module LightServiceObject
33
+ class ServiceError < StandardError; end
34
+
33
35
  class Base
34
36
  extend Dry::Initializer
35
37
  include Dry::Monads::Result::Mixin
36
38
 
37
-
38
39
  ## — CLASS METHODS
39
40
  class << self
40
41
  def result_class
@@ -71,16 +72,10 @@ module LightServiceObject
71
72
  def call(**options)
72
73
  begin
73
74
  obj = self.new(**options)
74
- rescue KeyError => e
75
- return Dry::Monads.Failure(e.message)
75
+ obj.call
76
+ rescue KeyError => error
77
+ Dry::Monads.Failure(error.message)
76
78
  end
77
-
78
- # Identify incoming params that weren't specified
79
- # set_params = obj.instance_variables.map{|e| e.to_s.tr("@","").to_sym }
80
- # unknown_params = (options.keys - set_params)
81
- # ap("#{self.name} > Unknown Parameters #{unknown_params}") if unknown_params.present?
82
-
83
- result = obj.call
84
79
  end
85
80
  end
86
81
 
@@ -103,15 +98,15 @@ module LightServiceObject
103
98
  end
104
99
  end
105
100
  Dry::Monads.Success(result)
106
- rescue StandardError => error
107
- fail!(error)
101
+ rescue Exception => error
102
+ Dry::Monads.Failure(error.message)
108
103
  end
109
104
 
110
105
  def fail!(error)
111
- error = ::StandardError.new(error.to_s) if !error.is_a?(::StandardError)
106
+ error = ServiceError.new(error.to_s) if !error.is_a?(ServiceError)
112
107
  reason = self.error_reason(error)
113
108
  self.class.failed(error)
114
- Dry::Monads.Failure(reason)
109
+ raise error
115
110
  end
116
111
 
117
112
  def error_reason(error)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: light_service_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sharpe