serviz 0.1.1 → 0.3.0

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: f5c7ab5aa65d4e38eb1dc46293514d3b0c2646e42e0e57e564d6da528ba5641c
4
- data.tar.gz: '03591abc857c6138c2d3eb595547373dd75cf9aa7a2855693566f384325a7da3'
3
+ metadata.gz: c6a85c4e77120f5d8ad63ede420fc521605ae687ccd6f330e882656dd3f1d0bf
4
+ data.tar.gz: f9c6b468e1ec02c6ecc342d5673a855bb5c56c3d8f040d8740c4722aa8789eb5
5
5
  SHA512:
6
- metadata.gz: '081c3fadf6244312e478e99e6d85b386140f317e544f230f8f648bdfe1a34d48502cb581d50c524ae481dd1d56e9360ac52674e04dd7680e37bd3365d08274e7'
7
- data.tar.gz: 251d149787e0460e3039e539c881aac1ae8a7f4a4d92afccccb9e105c2c6d016faff54bae0acabd632b4646ae9ef3d2ee0184af6eff50a25d5cc53aa20d54ef5
6
+ metadata.gz: 99df6f74445b1699e0ad55c5816dfdf858b788456fd241d9141015f755f9afb2227b0388ab5b35a6278c2a1672b21018db7d4605853159fbb50daec9b9876938
7
+ data.tar.gz: 2a6fcecc5ffc6726d402b053a8a6795d201ac531b2bb69602d1330cb3fde7148072a0095a341ca6e41a98c1c43103ed688148a1a92832ec07808eeed825e1c47
@@ -1,3 +1,3 @@
1
1
  module Serviz
2
- VERSION = "0.1.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/serviz.rb CHANGED
@@ -1,9 +1,20 @@
1
+ require 'serviz/version'
2
+
1
3
  module Serviz
2
4
  class Base
3
5
  attr_accessor :errors, :result
4
6
 
5
- def self.call(*args)
6
- new(*args).call
7
+ def self.call(*args, **kwargs)
8
+ instance = if args.length > 0 && kwargs.length > 0
9
+ new(*args, **kwargs)
10
+ elsif kwargs.length > 0
11
+ new(**kwargs)
12
+ else
13
+ new(*args)
14
+ end
15
+ instance.call
16
+
17
+ instance
7
18
  end
8
19
 
9
20
  def call
data/spec/scenarios.rb CHANGED
@@ -9,8 +9,17 @@ class RegisterUser < Serviz::Base
9
9
  else
10
10
  self.errors << 'No user!'
11
11
  end
12
+ end
13
+ end
12
14
 
13
- self
15
+ class PositionalAndKeyword < Serviz::Base
16
+ def initialize(positional, keyword:)
17
+ @positional = positional
18
+ @keyword = keyword
19
+ end
20
+
21
+ def call
22
+ self.result = [@positional, @keyword]
14
23
  end
15
24
  end
16
25
 
data/spec/serviz_spec.rb CHANGED
@@ -21,4 +21,11 @@ RSpec.describe Serviz::Base do
21
21
  it "raises exception if #call is not defined" do
22
22
  expect { NoCall.call }.to raise_error NotImplementedError
23
23
  end
24
+
25
+ it "accepts positional and keywords args" do
26
+ operation = PositionalAndKeyword.call('foo', keyword: 'bar')
27
+
28
+ expect(operation.success?).to eq true
29
+ expect(operation.result).to eq(['foo', 'bar'])
30
+ end
24
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serviz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - markets
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-05 00:00:00.000000000 Z
11
+ date: 2023-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -68,7 +68,7 @@ homepage: https://github.com/markets/serviz
68
68
  licenses:
69
69
  - MIT
70
70
  metadata: {}
71
- post_install_message:
71
+ post_install_message:
72
72
  rdoc_options: []
73
73
  require_paths:
74
74
  - lib
@@ -83,8 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 3.0.3
87
- signing_key:
86
+ rubygems_version: 3.4.10
87
+ signing_key:
88
88
  specification_version: 4
89
89
  summary: Command object Interface for Ruby
90
90
  test_files: