strum-service 0.0.4 → 0.2.0

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: 2dc9cd9b5198b405b48bb20f5e8c548c34317f1a3d8e0f381f083804025cb645
4
- data.tar.gz: 18935269b599e66ada9d5d031579761cbfb1128452851c51b79a81ac6a34a749
3
+ metadata.gz: 5fb6ced97fb4ca360125eacaaf126b16cd20d1eaec11fa44da8e7343bcd6824b
4
+ data.tar.gz: 18f2f7e2379143b136c5200320880c6592adb5968f16f15c6471b5da33a4737c
5
5
  SHA512:
6
- metadata.gz: 2b263cb72d6ae7d8cf4893fd6521b124387681e21b13018faeafc176043b57c45c779b3b26a0807d568628f5b1ae9e999c8b05768a97674a56a824159aabdaee
7
- data.tar.gz: 433e6ec8f1877aa7cdff54da99dee66c2bcf6de6351881eb341ac62d8948e6cdcecbe1534401bc636e3060c7b740f9f6b356fb03b8698ca4a9c10878dbf9766a
6
+ metadata.gz: dd0b7a43efc17cd92dc80748e94fc7339e14ebeb8c8c38b508d73b92fde28c3c77d6500df03c3a5493ddf388b53a8ea4b1500533b456ee3c9d4cd746d8f012a4
7
+ data.tar.gz: a95e51946cb31f1424b621bb938e96da89f0e751bf3865585b027edb0235b6b358354ac4fdda2979bf1327d591f9ebff722657f17689beef78806dab11d7822e
data/.gitignore CHANGED
@@ -6,6 +6,9 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /.rbenv-gemsets
10
+ /.ruby-version
11
+ spec/examples.txt
9
12
 
10
13
  # rspec failure tracking
11
14
  .rspec_status
data/Gemfile.lock CHANGED
@@ -1,51 +1,51 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- strum-service (0.0.4)
4
+ strum-service (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.1)
9
+ ast (2.4.2)
10
10
  diff-lcs (1.4.4)
11
11
  parallel (1.20.1)
12
- parser (2.7.2.0)
12
+ parser (3.0.2.0)
13
13
  ast (~> 2.4.1)
14
14
  rainbow (3.0.0)
15
15
  rake (12.3.3)
16
- regexp_parser (2.0.0)
17
- rexml (3.2.4)
16
+ regexp_parser (2.1.1)
17
+ rexml (3.2.5)
18
18
  rspec (3.10.0)
19
19
  rspec-core (~> 3.10.0)
20
20
  rspec-expectations (~> 3.10.0)
21
21
  rspec-mocks (~> 3.10.0)
22
- rspec-core (3.10.0)
22
+ rspec-core (3.10.1)
23
23
  rspec-support (~> 3.10.0)
24
- rspec-expectations (3.10.0)
24
+ rspec-expectations (3.10.1)
25
25
  diff-lcs (>= 1.2.0, < 2.0)
26
26
  rspec-support (~> 3.10.0)
27
- rspec-mocks (3.10.0)
27
+ rspec-mocks (3.10.2)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
29
  rspec-support (~> 3.10.0)
30
- rspec-support (3.10.0)
31
- rubocop (1.5.0)
30
+ rspec-support (3.10.2)
31
+ rubocop (1.18.4)
32
32
  parallel (~> 1.10)
33
- parser (>= 2.7.1.5)
33
+ parser (>= 3.0.0.0)
34
34
  rainbow (>= 2.2.2, < 4.0)
35
- regexp_parser (>= 2.0)
35
+ regexp_parser (>= 1.8, < 3.0)
36
36
  rexml
37
- rubocop-ast (>= 1.2.0)
37
+ rubocop-ast (>= 1.8.0, < 2.0)
38
38
  ruby-progressbar (~> 1.7)
39
- unicode-display_width (>= 1.4.0, < 2.0)
40
- rubocop-ast (1.3.0)
41
- parser (>= 2.7.1.5)
39
+ unicode-display_width (>= 1.4.0, < 3.0)
40
+ rubocop-ast (1.8.0)
41
+ parser (>= 3.0.1.1)
42
42
  rubocop-rake (0.5.1)
43
43
  rubocop
44
- rubocop-rspec (2.0.0)
44
+ rubocop-rspec (2.0.1)
45
45
  rubocop (~> 1.0)
46
46
  rubocop-ast (>= 1.1.0)
47
- ruby-progressbar (1.10.1)
48
- unicode-display_width (1.7.0)
47
+ ruby-progressbar (1.11.0)
48
+ unicode-display_width (2.0.0)
49
49
 
50
50
  PLATFORMS
51
51
  ruby
@@ -60,4 +60,4 @@ DEPENDENCIES
60
60
  strum-service!
61
61
 
62
62
  BUNDLED WITH
63
- 2.1.4
63
+ 2.2.15
data/lib/strum/service.rb CHANGED
@@ -25,24 +25,28 @@ module Strum
25
25
 
26
26
  # Internal: Interactor class methods.
27
27
  module ClassMethods
28
- def call(main_input, **args, &block)
29
- new(main_input, args).execute(&block)
28
+ def call(main_input, args = {}, &block)
29
+ raise ArgumentError, "Only Hash are allowed for args" unless args.is_a?(Hash)
30
+
31
+ new(main_input, **args).execute(&block)
30
32
  end
31
33
  end
32
34
 
33
35
  # Instance methods
34
- def initialize(main_input, **args)
36
+ def initialize(main_input, args = {})
35
37
  self.strum_errors = {}
36
38
  self.service_handlers = { on: {}, success: {}, failure: {} }
37
39
  self.outputs = {}
38
40
  self.inputs = args.merge(default: main_input)
39
41
  self._inputs = inputs.dup.freeze
42
+ setup_default_proc
43
+ setup_input_default_proc
40
44
  end
41
45
 
42
- def execute(&block)
46
+ def execute
43
47
  catch(:exit) do
44
48
  audit
45
- instance_exec(self, &block) if block_given?
49
+ yield(self) if block_given?
46
50
  call if valid?
47
51
  end
48
52
  valid? ? valid_result : invalid_result
@@ -73,9 +77,10 @@ module Strum
73
77
  end
74
78
 
75
79
  def method_missing(method_name, *args, &_block)
76
- super unless input.is_a?(Hash) && input[method_name.to_sym]
77
-
78
- args.count.positive? ? public_send(input[method_name.to_sym], args) : input[method_name.to_sym]
80
+ (args.count.zero? &&
81
+ (input.is_a?(Hash) && input[method_name.to_sym]) ||
82
+ inputs[method_name.to_sym]) ||
83
+ super
79
84
  end
80
85
 
81
86
  def respond_to_missing?(method_name, include_private = false)
@@ -181,6 +186,14 @@ module Strum
181
186
 
182
187
  private
183
188
 
189
+ def setup_default_proc
190
+ inputs.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil }
191
+ end
192
+
193
+ def setup_input_default_proc
194
+ input.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil } if input.is_a?(Hash)
195
+ end
196
+
184
197
  def key_to_sym(key)
185
198
  key.to_sym
186
199
  rescue StandardError
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Strum
4
4
  module Service
5
- VERSION = "0.0.4"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
@@ -10,20 +10,21 @@ Gem::Specification.new do |spec|
10
10
 
11
11
  spec.summary = "Light ruby framework"
12
12
  spec.description = "Strum Service"
13
- spec.homepage = "https://code.qpard.com/strum/strum-service"
13
+ spec.homepage = "https://gitlab.com/strum-rb/strum-service"
14
14
  spec.license = "MIT"
15
15
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
16
16
 
17
17
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
18
 
19
19
  spec.metadata["homepage_uri"] = spec.homepage
20
- spec.metadata["source_code_uri"] = "https://code.qpard.com/strum/strum-service"
21
- spec.metadata["changelog_uri"] = "https://code.qpard.com/strum/strum-service/CHANGELOG.md"
20
+ spec.metadata["source_code_uri"] = "https://gitlab.com/strum-rb/strum-service"
21
+ spec.metadata["changelog_uri"] = "https://gitlab.com/strum-rb/strum-service/-/blob/master/CHANGELOG.md"
22
+ spec.metadata["bug_tracker_uri"] = "https://gitlab.com/strum-rb/strum-service/issues"
22
23
 
23
24
  # Specify which files should be added to the gem when it is released.
24
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
26
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ `git ls-files -z`.split("\x0").reject { |f| f.match(/^(test|spec|features|\.ruby-version)/) }
27
28
  end
28
29
  spec.bindir = "exe"
29
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strum-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serhiy Nazarov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-18 00:00:00.000000000 Z
11
+ date: 2021-08-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Strum Service
14
14
  email:
@@ -33,14 +33,15 @@ files:
33
33
  - lib/strum/service.rb
34
34
  - lib/strum/service/version.rb
35
35
  - strum-service.gemspec
36
- homepage: https://code.qpard.com/strum/strum-service
36
+ homepage: https://gitlab.com/strum-rb/strum-service
37
37
  licenses:
38
38
  - MIT
39
39
  metadata:
40
40
  allowed_push_host: https://rubygems.org
41
- homepage_uri: https://code.qpard.com/strum/strum-service
42
- source_code_uri: https://code.qpard.com/strum/strum-service
43
- changelog_uri: https://code.qpard.com/strum/strum-service/CHANGELOG.md
41
+ homepage_uri: https://gitlab.com/strum-rb/strum-service
42
+ source_code_uri: https://gitlab.com/strum-rb/strum-service
43
+ changelog_uri: https://gitlab.com/strum-rb/strum-service/-/blob/master/CHANGELOG.md
44
+ bug_tracker_uri: https://gitlab.com/strum-rb/strum-service/issues
44
45
  post_install_message:
45
46
  rdoc_options: []
46
47
  require_paths:
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
57
  - !ruby/object:Gem::Version
57
58
  version: '0'
58
59
  requirements: []
59
- rubygems_version: 3.1.4
60
+ rubygems_version: 3.1.6
60
61
  signing_key:
61
62
  specification_version: 4
62
63
  summary: Light ruby framework