serviz 0.1.1 → 0.3.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: 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: