light_service_object 0.1.6 → 0.1.7

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 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