simple_service 2.1.3 → 2.1.5

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
- 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