hanikamu-service 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hanikamu/service.rb +11 -5
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c13211a3a80193a4c8e3b509fe94f822c43a4b0cd262e4447fa517d55b543ca
|
4
|
+
data.tar.gz: e5936028b1f35b64d7642f1617c813abeaf1d21a42f4087fe8d4010cf19e3ac4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12b3a647f28a05b10b968d70be941d0103dba6eeac99cf7863220d808418d3f55b72391aebd443f344136a52ee08cfd57349bc5f91a0a3bf61196fbbb207e8a5
|
7
|
+
data.tar.gz: 63b0902042003a8adc7e4165217f93958373a00ba97b717d15b49c7379f4433117bfc31842657c0dcce5d81f58e127ef8d8a88a6928f1eb539d20919eb0c55bc
|
data/lib/hanikamu/service.rb
CHANGED
@@ -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
|
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.
|
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:
|
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.
|
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: []
|