service_orchestrator 0.1.0 → 0.2.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: 03353d6cb24dcfa291140362f9f2d892cd4de3a0c93325ff5890d63e0b8c756f
4
- data.tar.gz: 17a6aa66407e74a57bb24761ca72445acc254adabfe36dcdb648f257cc9979fe
3
+ metadata.gz: de3c97c787f22f98d874162b9c1189c4d26ce68109739065c393afc035256d4f
4
+ data.tar.gz: 8e6641f68430162af12bc2c94e95b367ee7f54d2638f4bbcb6a0b07bfa1907e2
5
5
  SHA512:
6
- metadata.gz: eebfd03ac0cacdf4c3deca6d8adf0e194cb74cffcad34fba4afe98b91b2c0df622ccbcb335caa3507d661b3e003b19f885dd3843b1dcc1209685395b691fdd66
7
- data.tar.gz: 622e9b3aca930bde206e0b5da7c7cc45f9680aa082ed19fa43b7e123a9a0f05f27302c2e1ee2fdb73d0fb0d2121d7e8379e7269c91855abdce05f3c9e7b7f338
6
+ metadata.gz: 37557e8ec0d226cb50adafba035b40e73038825adc085ed409cb0dcbe043d3032712f99801ba7e2458db095fe2010d0c8c7e2b583c861677e6d5361fd86de9c3
7
+ data.tar.gz: c6036c8c66d7075a08eba4ab26f66554a8cec73d9965ffd43b57ba5bb2fc860c58c25f398b2ecc0ec476c185733fea4531355dd6b7832e5d989dd310ca4446c2
data/Gemfile.lock CHANGED
@@ -1,60 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- service_orchestrator (0.1.0)
4
+ service_orchestrator (0.2.0)
5
5
  activesupport
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (7.0.4)
10
+ activesupport (7.0.7)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  i18n (>= 1.6, < 2)
13
13
  minitest (>= 5.1)
14
14
  tzinfo (~> 2.0)
15
15
  ast (2.4.2)
16
- concurrent-ruby (1.1.10)
16
+ base64 (0.1.1)
17
+ concurrent-ruby (1.2.2)
17
18
  diff-lcs (1.5.0)
18
- i18n (1.12.0)
19
+ i18n (1.14.1)
19
20
  concurrent-ruby (~> 1.0)
20
21
  json (2.6.3)
21
- minitest (5.17.0)
22
- parallel (1.22.1)
23
- parser (3.1.3.0)
22
+ language_server-protocol (3.17.0.3)
23
+ minitest (5.19.0)
24
+ parallel (1.23.0)
25
+ parser (3.2.2.3)
24
26
  ast (~> 2.4.1)
27
+ racc
28
+ racc (1.7.1)
25
29
  rainbow (3.1.1)
26
30
  rake (13.0.6)
27
- regexp_parser (2.6.1)
28
- rexml (3.2.5)
31
+ regexp_parser (2.8.1)
32
+ rexml (3.2.6)
29
33
  rspec (3.12.0)
30
34
  rspec-core (~> 3.12.0)
31
35
  rspec-expectations (~> 3.12.0)
32
36
  rspec-mocks (~> 3.12.0)
33
- rspec-core (3.12.0)
37
+ rspec-core (3.12.2)
34
38
  rspec-support (~> 3.12.0)
35
- rspec-expectations (3.12.1)
39
+ rspec-expectations (3.12.3)
36
40
  diff-lcs (>= 1.2.0, < 2.0)
37
41
  rspec-support (~> 3.12.0)
38
- rspec-mocks (3.12.1)
42
+ rspec-mocks (3.12.6)
39
43
  diff-lcs (>= 1.2.0, < 2.0)
40
44
  rspec-support (~> 3.12.0)
41
- rspec-support (3.12.0)
42
- rubocop (1.41.1)
45
+ rspec-support (3.12.1)
46
+ rubocop (1.56.0)
47
+ base64 (~> 0.1.1)
43
48
  json (~> 2.3)
49
+ language_server-protocol (>= 3.17.0)
44
50
  parallel (~> 1.10)
45
- parser (>= 3.1.2.1)
51
+ parser (>= 3.2.2.3)
46
52
  rainbow (>= 2.2.2, < 4.0)
47
53
  regexp_parser (>= 1.8, < 3.0)
48
54
  rexml (>= 3.2.5, < 4.0)
49
- rubocop-ast (>= 1.23.0, < 2.0)
55
+ rubocop-ast (>= 1.28.1, < 2.0)
50
56
  ruby-progressbar (~> 1.7)
51
- unicode-display_width (>= 1.4.0, < 3.0)
52
- rubocop-ast (1.24.1)
53
- parser (>= 3.1.1.0)
54
- ruby-progressbar (1.11.0)
55
- tzinfo (2.0.5)
57
+ unicode-display_width (>= 2.4.0, < 3.0)
58
+ rubocop-ast (1.29.0)
59
+ parser (>= 3.2.1.0)
60
+ ruby-progressbar (1.13.0)
61
+ tzinfo (2.0.6)
56
62
  concurrent-ruby (~> 1.0)
57
- unicode-display_width (2.3.0)
63
+ unicode-display_width (2.4.2)
58
64
 
59
65
  PLATFORMS
60
66
  x86_64-darwin-21
data/README.md CHANGED
@@ -4,7 +4,7 @@ ServiceOrchestrator is a lightweight dependency injection framework, greatly ins
4
4
 
5
5
  Compared to Morphine, it automatically wires dependencies between services thanks to some simple conventions.
6
6
 
7
- If you wonder if you need this library, please check out [our article]() about Services in Rails.
7
+ If you wonder if you need this library, please check out [my article]() about Services in Rails.
8
8
 
9
9
  ## Installation
10
10
 
@@ -14,7 +14,7 @@ module ServiceOrchestrator
14
14
 
15
15
  def self.register(name, class_name = nil, &block)
16
16
  define_method name do |*args|
17
- dependencies[name] ||= class_name ? service_class(class_name).wire(self) : instance_exec(*args, &block)
17
+ dependencies[name] ||= class_name ? service_class(class_name).wire(name, self) : instance_exec(*args, &block)
18
18
  end
19
19
 
20
20
  define_method "#{name}=" do |service|
@@ -7,6 +7,8 @@ module ServiceOrchestrator
7
7
  class Service
8
8
  class_attribute :registered_deps
9
9
 
10
+ attr_reader :service_name
11
+
10
12
  def self.dependencies(*names)
11
13
  names.each do |name|
12
14
  dependency(name)
@@ -19,12 +21,14 @@ module ServiceOrchestrator
19
21
  attr_accessor name
20
22
  end
21
23
 
22
- def self.wire(container)
24
+ def self.wire(name, container)
23
25
  args = {}
24
26
  (self.registered_deps || []).each do |name|
25
27
  args[name] = container.send(name)
26
28
  end
27
- new(args)
29
+ new(args).tap do |service|
30
+ service.instance_variable_set(:"@service_name", name)
31
+ end
28
32
  end
29
33
 
30
34
  def initialize(args)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ServiceOrchestrator
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_orchestrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-07 00:00:00.000000000 Z
11
+ date: 2023-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description:
27
+ description:
28
28
  email:
29
29
  - didier.lafforgue@gmail.com
30
30
  executables: []
@@ -47,7 +47,7 @@ homepage: https://github.com/nocoffeehq/service_orchestrator
47
47
  licenses:
48
48
  - MIT
49
49
  metadata: {}
50
- post_install_message:
50
+ post_install_message:
51
51
  rdoc_options: []
52
52
  require_paths:
53
53
  - lib
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  requirements: []
65
65
  rubygems_version: 3.2.32
66
- signing_key:
66
+ signing_key:
67
67
  specification_version: 4
68
68
  summary: A small library to help you manage services with dependency injection.
69
69
  test_files: []