simple_service 2.1.3 → 2.1.5

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
- SHA1:
3
- metadata.gz: 80b6b2d5cf8a166fb7c3666d0b71347526a0b9c7
4
- data.tar.gz: 1e52375eca8157659afe17c69cf5c053bddde9df
2
+ SHA256:
3
+ metadata.gz: d3f4dc247883ae9ebda40616abae2ecada0f44e3a81babb3fe8f99f4ddd072cf
4
+ data.tar.gz: 1c238edcfa08c34cc0fe9d166b2cb9d4c8d8803d2f0b84e26265433bd2bc59d0
5
5
  SHA512:
6
- metadata.gz: '03186be2699de59c7d3f88d7a1df830fed42ec735c21bfb44f9e0c56678ab8b567097be327f0544adb653cc641db25bcff78f13ee716c6f8b49d2d39710372c4'
7
- data.tar.gz: f8437b785fe9419de4b88c74bb40437184ef92a31532f8e23a105fd2be464587aac5f194e12ac542b2151807eedc85f7c9ee6ecfb9a6c341603d8e06093af3d6
6
+ metadata.gz: 53c0ccac4184ad5be6e3a849b94a1dc5c2fb419937a500db3edbe59762cdd54e23ca1dffa411d5362636683dc9ec6aa3aa2b4a68297cd61e28c59330a2cc36ff
7
+ data.tar.gz: 0071e4847fa116a5fcbcc8235528a2a630d974c421b21b199bd4f496ebcc508aa8ee5949bc7f7d7974f0dc58ef83a3b2e33a46a5983538400edcdee6c3d93a38
@@ -0,0 +1,45 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+ packages: write
16
+
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - name: Set up Ruby 2.6
20
+ uses: actions/setup-ruby@v1
21
+ with:
22
+ ruby-version: 2.6.x
23
+
24
+ - name: Publish to GPR
25
+ run: |
26
+ mkdir -p $HOME/.gem
27
+ touch $HOME/.gem/credentials
28
+ chmod 0600 $HOME/.gem/credentials
29
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
30
+ gem build *.gemspec
31
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
32
+ env:
33
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
34
+ OWNER: ${{ github.repository_owner }}
35
+
36
+ - name: Publish to RubyGems
37
+ run: |
38
+ mkdir -p $HOME/.gem
39
+ touch $HOME/.gem/credentials
40
+ chmod 0600 $HOME/.gem/credentials
41
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
42
+ gem build *.gemspec
43
+ gem push *.gem
44
+ env:
45
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1 @@
1
+ cb567a382f07efd13ccbb083e1f8b876aaae4d752b188fd8d7fc42cc0fdba86d5c6d051187e4422aa3d9e5a7d9ad2db4789142fced9cd6cd3d6b08a99f3d40d3
@@ -3,7 +3,7 @@ module SimpleService
3
3
  attr_accessor :value, :recorded_commands
4
4
 
5
5
  def initialize()
6
- @recorded_commands = []
6
+ @recorded_commands = Set.new
7
7
  @verbose_tracking = SimpleService.configuration.verbose_tracking
8
8
  end
9
9
 
@@ -1,3 +1,3 @@
1
1
  module SimpleService
2
- VERSION = '2.1.3'
2
+ VERSION = '2.1.5'
3
3
  end
@@ -63,7 +63,7 @@ module SimpleService
63
63
  if service.method(cmnd).arity.zero?
64
64
  service.public_send(cmnd)
65
65
  else
66
- service.public_send(cmnd, service.result.value)
66
+ service.public_send(cmnd, **service.result.value)
67
67
  end
68
68
  end
69
69
 
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_development_dependency 'bundler'
22
- spec.add_development_dependency 'rake', '~> 12.0.0'
23
- spec.add_development_dependency 'rspec', '~> 3.6.0'
24
- spec.add_development_dependency 'pry', '~> 0.10.4'
22
+ spec.add_development_dependency 'rake', '~> 12.3.3'
23
+ spec.add_development_dependency 'rspec', '~> 3.12.0'
24
+ spec.add_development_dependency 'pry', '~> 0.14.2'
25
25
  spec.add_development_dependency 'simplecov'
26
26
  spec.add_development_dependency 'codeclimate-test-reporter'
27
27
  end
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
  require_relative 'support/basic_service'
3
3
  require_relative 'support/looping_service'
4
4
  require_relative 'support/empty_service'
5
+ require_relative 'support/multiple_outcome_calls'
5
6
 
6
7
  RSpec.describe SimpleService do
7
8
 
@@ -87,31 +88,50 @@ RSpec.describe SimpleService do
87
88
  end
88
89
 
89
90
  context 'record commands' do
91
+ it 'value refects only one outcome call per command' do
92
+ result = MultipleOutcomeCalls.call(params.merge(foo: 'foo', bar: 'bar'))
93
+ expect(result.value).to eq(foo: 'FOO', bar: 'BAR')
94
+ end
95
+
96
+ it 'recorded commands has only one outcome call per command' do
97
+ result = MultipleOutcomeCalls.call(params.merge(foo: 'foo', bar: 'bar'))
98
+ expect(result.recorded_commands).to eq(Set.new([
99
+ {
100
+ class_name: 'MultipleOutcomeCalls',
101
+ command_name: :command_one,
102
+ success: true,
103
+ },
104
+ {
105
+ class_name: 'MultipleOutcomeCalls',
106
+ command_name: :command_two,
107
+ success: true,
108
+ },
109
+ ]))
110
+ end
111
+
90
112
  it 'records normal command execution' do
91
- expect(result.recorded_commands).to eq(
92
- [
93
- {
94
- class_name: 'BasicService',
95
- command_name: :upcase_foo,
96
- success: true,
97
- },
98
- {
99
- class_name: 'BasicService',
100
- command_name: :upcase_bar,
101
- success: true,
102
- },
103
- {
104
- class_name: 'ModifyFooBar',
105
- command_name: :call,
106
- success: true,
107
- },
108
- {
109
- class_name: 'CombineFooBar',
110
- command_name: :call,
111
- success: true,
112
- },
113
- ]
114
- )
113
+ expect(result.recorded_commands).to eq(Set.new([
114
+ {
115
+ class_name: 'BasicService',
116
+ command_name: :upcase_foo,
117
+ success: true,
118
+ },
119
+ {
120
+ class_name: 'BasicService',
121
+ command_name: :upcase_bar,
122
+ success: true,
123
+ },
124
+ {
125
+ class_name: 'ModifyFooBar',
126
+ command_name: :call,
127
+ success: true,
128
+ },
129
+ {
130
+ class_name: 'CombineFooBar',
131
+ command_name: :call,
132
+ success: true,
133
+ },
134
+ ]))
115
135
  end
116
136
 
117
137
  it 'records verbose command execution' do
@@ -119,7 +139,7 @@ RSpec.describe SimpleService do
119
139
  config.verbose_tracking = true
120
140
  end
121
141
 
122
- expect(result.recorded_commands).to eq(
142
+ expect(result.recorded_commands).to eq(Set.new(
123
143
  [
124
144
  {
125
145
  class_name: 'BasicService',
@@ -181,7 +201,7 @@ RSpec.describe SimpleService do
181
201
  },
182
202
  },
183
203
  ]
184
- )
204
+ ))
185
205
  end
186
206
  end
187
207
  end
@@ -0,0 +1,16 @@
1
+ class MultipleOutcomeCalls
2
+ include SimpleService
3
+
4
+ commands :command_one,
5
+ :command_two,
6
+
7
+ def command_one(**kwargs)
8
+ success(kwargs.merge(foo: kwargs[:foo].capitalize))
9
+ success(kwargs.merge(foo: kwargs[:foo].upcase))
10
+ end
11
+
12
+ def command_two(**kwargs)
13
+ success(bar: kwargs[:bar].capitalize)
14
+ success(foo: kwargs[:foo].upcase, bar: kwargs[:bar].upcase)
15
+ end
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jarrod Spillers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2023-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,42 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 12.0.0
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 12.0.0
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.6.0
47
+ version: 3.12.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.6.0
54
+ version: 3.12.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.4
61
+ version: 0.14.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.10.4
68
+ version: 0.14.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -102,6 +102,7 @@ executables: []
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
+ - ".github/workflows/gem-push.yml"
105
106
  - ".gitignore"
106
107
  - ".rspec"
107
108
  - ".travis.yml"
@@ -110,6 +111,7 @@ files:
110
111
  - LICENSE.txt
111
112
  - README.md
112
113
  - Rakefile
114
+ - checksums/simple_service-2.1.4.gem.sha512
113
115
  - lib/simple_service.rb
114
116
  - lib/simple_service/configuration.rb
115
117
  - lib/simple_service/result.rb
@@ -122,11 +124,12 @@ files:
122
124
  - spec/support/empty_service.rb
123
125
  - spec/support/looping_service.rb
124
126
  - spec/support/modify_foo_bar.rb
127
+ - spec/support/multiple_outcome_calls.rb
125
128
  homepage: https://github.com/jspillers/simple_service
126
129
  licenses:
127
130
  - MIT
128
131
  metadata: {}
129
- post_install_message:
132
+ post_install_message:
130
133
  rdoc_options: []
131
134
  require_paths:
132
135
  - lib
@@ -141,9 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
144
  - !ruby/object:Gem::Version
142
145
  version: '0'
143
146
  requirements: []
144
- rubyforge_project:
145
- rubygems_version: 2.6.11
146
- signing_key:
147
+ rubygems_version: 3.4.10
148
+ signing_key:
147
149
  specification_version: 4
148
150
  summary: A minimal service object composer with support for individual commands and
149
151
  top level organizer objects
@@ -155,3 +157,4 @@ test_files:
155
157
  - spec/support/empty_service.rb
156
158
  - spec/support/looping_service.rb
157
159
  - spec/support/modify_foo_bar.rb
160
+ - spec/support/multiple_outcome_calls.rb