hanikamu-service 0.1.3 → 0.1.5

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hanikamu/service.rb +11 -5
  3. metadata +22 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2fd98fb2f0ddba884d61ce4fdee4c5d4a227515d782b427d8157262496a1027
4
- data.tar.gz: d9ec6df7703b16a55d8364989796790c54959db9350f490d8f9a3679616c2c3a
3
+ metadata.gz: 9c13211a3a80193a4c8e3b509fe94f822c43a4b0cd262e4447fa517d55b543ca
4
+ data.tar.gz: e5936028b1f35b64d7642f1617c813abeaf1d21a42f4087fe8d4010cf19e3ac4
5
5
  SHA512:
6
- metadata.gz: 5dd2458e0e61b5da798728d619fc153e461beb39439fc756156d190e4ef5d5a485db30d34692e899fdba6af797501dd927fae5960c69a3fc15944460838c69a4
7
- data.tar.gz: 21042a51f72de8221a8be7c532eb5acc7dd14a099aed3b5a6e971cd9326f1052d8cf057692ef2218abd77470be4a2bfba5c9517a9c0abf30509e574b0c3df164
6
+ metadata.gz: 12b3a647f28a05b10b968d70be941d0103dba6eeac99cf7863220d808418d3f55b72391aebd443f344136a52ee08cfd57349bc5f91a0a3bf61196fbbb207e8a5
7
+ data.tar.gz: 63b0902042003a8adc7e4165217f93958373a00ba97b717d15b49c7379f4433117bfc31842657c0dcce5d81f58e127ef8d8a88a6928f1eb539d20919eb0c55bc
@@ -6,20 +6,25 @@ require "dry-monads"
6
6
  module Hanikamu
7
7
  # :nodoc
8
8
  class Service < Dry::Struct
9
+ extend Dry::Configurable
9
10
  extend Dry::Monads[:result]
10
11
  Error = Class.new(StandardError)
11
12
 
13
+ setting :whitelisted_errors, default: []
14
+
12
15
  class << self
13
- def call(options = {})
14
- Success(call!(options))
16
+ def call(options = {}, &block)
17
+ Success(call!(options, &block))
15
18
  rescue StandardError => e
16
19
  return Failure.new(e) if whitelisted_error?(e.class)
17
20
 
18
21
  raise e
19
22
  end
20
23
 
21
- def call!(options = {})
22
- options.empty? ? new.send(:call!) : new(options).send(:call!)
24
+ def call!(options = {}, &block)
25
+ instance = options.empty? ? new : new(options)
26
+
27
+ block ? instance.call!(&block) : instance.call!
23
28
  end
24
29
 
25
30
  private
@@ -27,7 +32,8 @@ module Hanikamu
27
32
  def whitelisted_error?(error_klass)
28
33
  error_klass == Hanikamu::Service::Error ||
29
34
  error_klass.superclass == Hanikamu::Service::Error ||
30
- error_klass == Dry::Struct::Error
35
+ error_klass == Dry::Struct::Error ||
36
+ config.whitelisted_errors.include?(error_klass)
31
37
  end
32
38
  end
33
39
 
metadata CHANGED
@@ -1,16 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanikamu-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolai Seerup
8
8
  - Alejandro Jimenez
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-21 00:00:00.000000000 Z
12
+ date: 2024-05-15 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: dry-configurable
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 1.1.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 1.1.0
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: dry-monads
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,8 +53,8 @@ dependencies:
39
53
  - - "~>"
40
54
  - !ruby/object:Gem::Version
41
55
  version: 1.6.0
42
- description:
43
- email:
56
+ description:
57
+ email:
44
58
  executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
@@ -53,7 +67,7 @@ licenses:
53
67
  - MIT
54
68
  metadata:
55
69
  rubygems_mfa_required: 'true'
56
- post_install_message:
70
+ post_install_message:
57
71
  rdoc_options: []
58
72
  require_paths:
59
73
  - lib
@@ -68,8 +82,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
82
  - !ruby/object:Gem::Version
69
83
  version: '0'
70
84
  requirements: []
71
- rubygems_version: 3.4.1
72
- signing_key:
85
+ rubygems_version: 3.5.3
86
+ signing_key:
73
87
  specification_version: 4
74
88
  summary: This is the base service for all pattern designs used in hanikamu design
75
89
  test_files: []