hanikamu-service 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b1581dc504febafaf37b7454321016795a9f160992d514454116bf9d4c3b1c76
4
+ data.tar.gz: '086b42f4e352bd45011959a2b802a67acfef0bd0635cb0e6cba08a916fb06e3a'
5
+ SHA512:
6
+ metadata.gz: 74681654312eea72506e928b7c22ec94d6f9a69fdd3d46f0defe94d0e63948212939ddc21b6c3d6940915952cff72df41541259ae1f3c04dfe4550873c626965
7
+ data.tar.gz: 4bb4c505275ac10e6d50287b4894b6e36921ec201addbafd64d2b903d99ab5c1e42075fb3f5384f57ff8e80f88167525d859980fc3aacafb0ce6f650c13bed4b
data/Rakefile ADDED
@@ -0,0 +1,23 @@
1
+ # encoding: UTF-8
2
+ require 'rubygems'
3
+ require 'bundler'
4
+ require "bundler/gem_tasks"
5
+ require "rake/testtask"
6
+
7
+ begin
8
+ Bundler.setup(:default, :development, :test)
9
+ rescue Bundler::BundlerError => e
10
+ $stderr.puts e.message
11
+ $stderr.puts "Run `bundle install` to install missing gems"
12
+ exit e.status_code
13
+ end
14
+
15
+ require 'rake'
16
+
17
+ begin
18
+ require 'rspec/core/rake_task'
19
+ RSpec::Core::RakeTask.new(:spec)
20
+ rescue LoadError
21
+ end
22
+
23
+ task default: :spec
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "hanikamu/service"
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dry-struct"
4
+ require "dry-monads"
5
+
6
+ module Hanikamu
7
+ # :nodoc
8
+ class Service < Dry::Struct
9
+ include Dry::Monads[:result]
10
+ Error = Class.new(StandardError)
11
+
12
+ class << self
13
+ def call(options = {})
14
+ options.empty? ? new.call : new(options)&.call
15
+ rescue Dry::Struct::Error => e
16
+ self::Failure.new(e)
17
+ end
18
+
19
+ def call!(options = {})
20
+ options.empty? ? new.call! : new(options).call!
21
+ end
22
+ end
23
+
24
+ # `call` should not be implemented in subclasses
25
+ def call
26
+ Success(call!)
27
+ rescue => e
28
+ return Failure(e) if whitelisted_error?(e.class)
29
+
30
+ raise
31
+ end
32
+
33
+ def whitelisted_error?(error_klass)
34
+ error_klass.is_a?(Error) ||
35
+ error_klass.superclass == Hanikamu::Service::Error
36
+ end
37
+
38
+ private_class_method :new
39
+ end
40
+ end
File without changes
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hanikamu-service
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Nicolai Seerup
8
+ - Alejandro Jimenez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2021-03-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: dry-monads
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: dry-struct
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '2'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '2'
56
+ - !ruby/object:Gem::Dependency
57
+ name: pry
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.14.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 0.14.0
70
+ - !ruby/object:Gem::Dependency
71
+ name: rake
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.0'
98
+ description:
99
+ email:
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - Rakefile
105
+ - lib/hanikamu-service.rb
106
+ - lib/hanikamu/service.rb
107
+ - lib/hanikamu/version.rb
108
+ homepage:
109
+ licenses: []
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.5'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.7.6
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: This is the base service for all pattern designs used in hanikamu design
131
+ test_files: []