soar-dependency_container 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ddd4ab593f8cf8ff50a0294a636b10ab02a8827b
4
+ data.tar.gz: 042ead91daba16add897f82b198c62e42c15c50c
5
+ SHA512:
6
+ metadata.gz: f27caecf840cfe12484c6985e393b6bf7276a3c726f91b706538c0cae5d075882d874309b9fc5b9276c2c29fa01b26c92b134f8ff8b04fc1e4978c08a30eb79e
7
+ data.tar.gz: 6d67d2e349812239bc20c166fc879153d2eb8177a33a117957ca785dd37014b5ee952fdd2b646aaaf67cab8cbbb6279b330353fdaa8852c09bcffdbabe6adb9b
data/.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'soar/dependency_container/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "soar-dependency_container"
8
+ spec.version = Soar::DependencyContainer::VERSION
9
+ spec.authors = ["Sheldon Hearn"]
10
+ spec.email = ["sheldonh@starjuice.net"]
11
+
12
+ spec.summary = %q{Dependency injection container}
13
+ spec.description = %q{Dependency injection container compatible with the SOAR Ruby framework}
14
+ spec.homepage = "https://github.com/hetznerZA/soar-dependency_container"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "fabrique", "~> 1.0", ">= 1.0.1"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.12"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "cucumber", "~> 2.4"
26
+ spec.add_development_dependency "rspec", "~> 3.5"
27
+ spec.add_development_dependency "rspec-expectations", "~> 3.3"
28
+ end
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/Dockerfile ADDED
@@ -0,0 +1,11 @@
1
+ FROM ruby:2.3
2
+
3
+ WORKDIR /usr/local/src
4
+
5
+ ADD Gemfile .gemspec /usr/local/src/
6
+ ADD lib/soar/dependency_container/version.rb /usr/local/src/lib/soar/dependency_container/
7
+ RUN bundle install
8
+
9
+ ADD . /usr/local/src/
10
+
11
+ CMD bundle exec rake
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in soar-dependency_injector.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Soar::DependencyInjector
2
+
3
+ Dependency injection container compatible with the SOAR Ruby framework.
4
+
5
+ The first intended provider is a thing wrapper around a [fabrique](https://github.com/starjuice/fabrique)
6
+ [YamlBeanFactory](http://www.rubydoc.info/gems/fabrique/Fabrique/YamlBeanFactory).
7
+
8
+ ## Installation
9
+
10
+ Add this line to your application's Gemfile:
11
+
12
+ ```ruby
13
+ gem 'soar-dependency_injector'
14
+ ```
15
+
16
+ And then execute:
17
+
18
+ $ bundle
19
+
20
+ Or install it yourself as:
21
+
22
+ $ gem install soar-dependency_injector
23
+
24
+ ## Usage
25
+
26
+ TODO: Write usage instructions here
27
+
28
+ ## Development
29
+
30
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
31
+
32
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
33
+
34
+ ## Contributing
35
+
36
+ Bug reports and pull requests are welcome on GitHub at https://github.com/hetznerZA/soar-dependency_injector.
37
+
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ task :default => :test
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ desc "Test the included providers"
9
+ task :test => ["test:includes", "test:stub", "test:fabrique"]
10
+
11
+ namespace :test do
12
+
13
+ desc "Test the stub provider"
14
+ task :stub => :spec do
15
+
16
+ sh %{TEST_ORCHESTRATION_PROVIDER=stub bundle exec cucumber}
17
+ end
18
+
19
+ desc "Test the fabrique provider"
20
+ task :fabrique => :spec do
21
+
22
+ sh %{TEST_ORCHESTRATION_PROVIDER=fabrique bundle exec cucumber}
23
+ end
24
+
25
+ desc "Test includes"
26
+ task :includes do
27
+ sh %{cd lib && for i in soar/dependency_container.rb $(find soar/dependency_container -name '*.rb'); do
28
+ i=${i%.rb}
29
+ ruby -e '$LOAD_PATH.unshift("."); '"require '$i'; "'exit 0' || break
30
+ done}
31
+ end
32
+ end
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "soar/dependency_injector"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,4 @@
1
+ #!/bin/sh -e
2
+
3
+ docker build --tag soar-dependency_container .
4
+ docker run --rm soar-dependency_container
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,13 @@
1
+ require "soar/dependency_container/base"
2
+ require "soar/dependency_container/hash_proxy"
3
+ require "soar/dependency_container/errors"
4
+ require "soar/dependency_container/legacy_injector"
5
+ require "soar/dependency_container/version"
6
+
7
+ module Soar
8
+
9
+ module DependencyContainer
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,24 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ class Base
6
+
7
+ def initialize(provider)
8
+ raise ArgumentError.new("Missing argument :provider") unless provider
9
+ @provider = provider
10
+ end
11
+
12
+ def get_dependency(name)
13
+ @provider.get_dependency(name) or raise MissingDependencyError.new("Missing dependency: #{name}")
14
+ end
15
+
16
+ def list_dependencies
17
+ @provider.list_dependencies
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,14 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ class Error < RuntimeError
6
+
7
+ end
8
+
9
+ class MissingDependencyError < Error
10
+ end
11
+
12
+ end
13
+
14
+ end
@@ -0,0 +1,23 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ class HashProxy
6
+
7
+ def initialize(dependency_container)
8
+ @dependency_container = dependency_container
9
+ end
10
+
11
+ def [](name)
12
+ @dependency_container.get_dependency(name)
13
+ end
14
+
15
+ def keys
16
+ @dependency_container.list_dependencies
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,24 @@
1
+ require "soar/dependency_container/provider/fabrique"
2
+
3
+ module Soar
4
+
5
+ module DependencyContainer
6
+
7
+ class LegacyInjector
8
+
9
+ def inject_dependencies(configuration)
10
+ context = configuration["dependency_injector_config"]
11
+ if context
12
+ provider = Soar::DependencyContainer::Provider::Fabrique.new(context)
13
+ model = Soar::DependencyContainer::Base.new(provider)
14
+ HashProxy.new(model)
15
+ else
16
+ {}
17
+ end
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,35 @@
1
+ require "fabrique"
2
+
3
+ module Soar
4
+
5
+ module DependencyContainer
6
+
7
+ module Provider
8
+
9
+ class Fabrique
10
+
11
+ def initialize(config)
12
+ @fabrique = ::Fabrique::YamlBeanFactory.new(config)
13
+ @fabrique.load_gem_dependencies
14
+ end
15
+
16
+ def get_dependency(name)
17
+ begin
18
+ @fabrique.get_bean(name)
19
+ rescue ::Fabrique::MissingBeanError
20
+ # Soar::DependencyContainer::Base interprets nil as a missing dependency error
21
+ nil
22
+ end
23
+ end
24
+
25
+ def list_dependencies
26
+ @fabrique.registry.get_definitions.map(&:id)
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,31 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ module Provider
6
+
7
+ class Stub
8
+
9
+ def initialize(dependencies)
10
+ @dependencies = dependencies
11
+ end
12
+
13
+ def get_dependency(name)
14
+ if @dependencies[name].is_a?(Proc)
15
+ @dependencies[name].call
16
+ else
17
+ @dependencies[name]
18
+ end
19
+ end
20
+
21
+ def list_dependencies
22
+ @dependencies.keys
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,3 @@
1
+ require "soar/dependency_container/test/dependency_fixture"
2
+ require "soar/dependency_container/test/orchestrator"
3
+ require "soar/dependency_container/test/stub_orchestration_provider"
@@ -0,0 +1,23 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ module Test
6
+
7
+ class DependencyFixture
8
+
9
+ attr_reader :created_at
10
+ attr_reader :name
11
+
12
+ def initialize(name)
13
+ @name = name
14
+ @created_at = Time.now
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,75 @@
1
+ require "soar/dependency_container/provider/fabrique"
2
+
3
+ module Soar
4
+
5
+ module DependencyContainer
6
+
7
+ module Test
8
+
9
+ class FabriqueOrchestrationProvider
10
+
11
+ def get_dependency_container_config_with_no_dependencies
12
+ unindent %{
13
+ ---
14
+ beans: []
15
+ }
16
+ end
17
+
18
+ def get_dependency_container_config_with_singleton_dependency(name)
19
+ unindent %{
20
+ ---
21
+ beans:
22
+ - id: #{name}
23
+ class: Soar::DependencyContainer::Test::DependencyFixture
24
+ scope: singleton
25
+ constructor_args:
26
+ - #{name}
27
+ }
28
+ end
29
+
30
+ def get_dependency_container_config_with_prototype_dependency(name)
31
+ unindent %{
32
+ ---
33
+ beans:
34
+ - id: #{name}
35
+ class: Soar::DependencyContainer::Test::DependencyFixture
36
+ scope: prototype
37
+ constructor_args:
38
+ - #{name}
39
+ }
40
+ end
41
+
42
+ def get_dependency_container_config_with_two_dependencies(name1, name2)
43
+ unindent %{
44
+ ---
45
+ beans:
46
+ - id: #{name1}
47
+ class: Soar::DependencyContainer::Test::DependencyFixture
48
+ constructor_args:
49
+ - #{name1}
50
+ - id: #{name2}
51
+ class: Soar::DependencyContainer::Test::DependencyFixture
52
+ constructor_args:
53
+ - #{name2}
54
+ }
55
+ end
56
+
57
+ def get_dependency_container_provider(config)
58
+ Soar::DependencyContainer::Provider::Fabrique.new(config)
59
+ end
60
+
61
+ private
62
+
63
+ def unindent(s)
64
+ s =~ /^(\s+)/
65
+ top_level_indent = $1
66
+ s.gsub(/^#{top_level_indent}/m, "")
67
+ end
68
+
69
+ end
70
+
71
+ end
72
+
73
+ end
74
+
75
+ end
@@ -0,0 +1,29 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ module Test
6
+
7
+ class ListResponse
8
+
9
+ attr_reader :dependencies
10
+ attr_reader :error_message
11
+
12
+ def initialize(dependencies = nil, error_message = nil)
13
+ raise ArgumentError.new("Dependencies or error required") unless dependencies || error_message
14
+ raise ArgumentError.new("Dependencies and error cannot both be provided") if dependencies && error_message
15
+ @dependencies = dependencies
16
+ @error_message = error_message
17
+ end
18
+
19
+ def empty?
20
+ @dependencies && @dependencies.empty?
21
+ end
22
+
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,104 @@
1
+ require "rspec/expectations"
2
+
3
+ require "soar/dependency_container/test/response"
4
+ require "soar/dependency_container/test/list_response"
5
+
6
+ module Soar
7
+
8
+ module DependencyContainer
9
+
10
+ module Test
11
+
12
+ class Orchestrator
13
+
14
+ include ::RSpec::Matchers
15
+
16
+ def initialize(provider)
17
+ @orchestrator = provider
18
+ end
19
+
20
+ def dependency_container_with_no_dependencies
21
+ config = @orchestrator.get_dependency_container_config_with_no_dependencies
22
+ @dependency_container = create_dependency_container(config)
23
+ end
24
+
25
+ def dependency_container_with_singleton_dependency(name)
26
+ config = @orchestrator.get_dependency_container_config_with_singleton_dependency(name)
27
+ @dependency_container = create_dependency_container(config)
28
+ end
29
+
30
+ def dependency_container_with_prototype_dependency(name)
31
+ config = @orchestrator.get_dependency_container_config_with_prototype_dependency(name)
32
+ @dependency_container = create_dependency_container(config)
33
+ end
34
+
35
+ def dependency_container_with_two_dependencies(name1, name2)
36
+ config = @orchestrator.get_dependency_container_config_with_two_dependencies(name1, name2)
37
+ @dependency_container = create_dependency_container(config)
38
+ end
39
+
40
+ def request_dependency(name)
41
+ begin
42
+ @requested_dependency = @dependency_container.get_dependency(name)
43
+ rescue Exception => e
44
+ $stderr.puts "DEBUG: Observed possibly rescued exception #{e.inspect}"
45
+ @request_raised_exception = e
46
+ end
47
+ @response = Response.new(@requested_dependency, (@request_raised_exception.message if @request_raised_exception))
48
+ end
49
+
50
+ def request_dependency_twice(name)
51
+ @first_response = request_dependency(name)
52
+ @second_response = request_dependency(name)
53
+ end
54
+
55
+ def list_dependencies
56
+ @dependency_list = @dependency_container.list_dependencies
57
+ @list_response = ListResponse.new(@dependency_list, nil)
58
+ end
59
+
60
+ def assert_received_error(pattern)
61
+ expect(@response.error_message).to match(/missing dependency/i)
62
+ end
63
+
64
+ def assert_received_dependency(name)
65
+ expect(@response.error_message).to be_nil
66
+ expect(@response.dependency.name).to eql name
67
+ end
68
+
69
+ def assert_received_same_dependency
70
+ expect(@first_response.error_message).to be_nil
71
+ expect(@second_response.error_message).to be_nil
72
+ expect(@second_response.dependency.created_at).to eql @first_response.dependency.created_at
73
+ end
74
+
75
+ def assert_received_different_dependency
76
+ expect(@first_response.error_message).to be_nil
77
+ expect(@second_response.error_message).to be_nil
78
+ expect(@second_response.dependency.created_at).to_not eql @first_response.dependency.created_at
79
+ end
80
+
81
+ def assert_received_empty_list
82
+ expect(@list_response.error_message).to be_nil
83
+ expect(@list_response).to be_empty
84
+ end
85
+
86
+ def assert_received_list_including(names)
87
+ expect(@list_response.error_message).to be_nil
88
+ expect(@list_response.dependencies).to include(*names)
89
+ end
90
+
91
+ private
92
+
93
+ def create_dependency_container(config)
94
+ dependency_container_provider = @orchestrator.get_dependency_container_provider(config)
95
+ Soar::DependencyContainer::Base.new(dependency_container_provider)
96
+ end
97
+
98
+ end
99
+
100
+ end
101
+
102
+ end
103
+
104
+ end
@@ -0,0 +1,25 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ module Test
6
+
7
+ class Response
8
+
9
+ attr_reader :dependency
10
+ attr_reader :error_message
11
+
12
+ def initialize(dependency = nil, error_message = nil)
13
+ raise ArgumentError.new("Dependency or error required") unless dependency || error_message
14
+ raise ArgumentError.new("Dependency and error cannot both be provided") if dependency && error_message
15
+ @dependency = dependency
16
+ @error_message = error_message
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,36 @@
1
+ module Soar
2
+
3
+ module DependencyContainer
4
+
5
+ module Test
6
+
7
+ class StubOrchestrationProvider
8
+
9
+ def get_dependency_container_config_with_no_dependencies
10
+ {}
11
+ end
12
+
13
+ def get_dependency_container_config_with_singleton_dependency(name)
14
+ {name => Soar::DependencyContainer::Test::DependencyFixture.new(name)}
15
+ end
16
+
17
+ def get_dependency_container_config_with_prototype_dependency(name)
18
+ {name => -> { Soar::DependencyContainer::Test::DependencyFixture.new(name) }}
19
+ end
20
+
21
+ def get_dependency_container_config_with_two_dependencies(name1, name2)
22
+ {name1 => Soar::DependencyContainer::Test::DependencyFixture.new(name1),
23
+ name2 => Soar::DependencyContainer::Test::DependencyFixture.new(name2)}
24
+ end
25
+
26
+ def get_dependency_container_provider(config)
27
+ Soar::DependencyContainer::Provider::Stub.new(config)
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -0,0 +1,5 @@
1
+ module Soar
2
+ module DependencyContainer
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: soar-dependency_container
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sheldon Hearn
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-11-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fabrique
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.12'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.12'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '10.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '10.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: cucumber
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2.4'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.4'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rspec
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.5'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.5'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec-expectations
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.3'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.3'
103
+ description: Dependency injection container compatible with the SOAR Ruby framework
104
+ email:
105
+ - sheldonh@starjuice.net
106
+ executables: []
107
+ extensions: []
108
+ extra_rdoc_files: []
109
+ files:
110
+ - ".gemspec"
111
+ - ".gitignore"
112
+ - ".rspec"
113
+ - Dockerfile
114
+ - Gemfile
115
+ - README.md
116
+ - Rakefile
117
+ - bin/console
118
+ - bin/dockerized-test
119
+ - bin/setup
120
+ - lib/soar/dependency_container.rb
121
+ - lib/soar/dependency_container/base.rb
122
+ - lib/soar/dependency_container/errors.rb
123
+ - lib/soar/dependency_container/hash_proxy.rb
124
+ - lib/soar/dependency_container/legacy_injector.rb
125
+ - lib/soar/dependency_container/provider/fabrique.rb
126
+ - lib/soar/dependency_container/provider/stub.rb
127
+ - lib/soar/dependency_container/test.rb
128
+ - lib/soar/dependency_container/test/dependency_fixture.rb
129
+ - lib/soar/dependency_container/test/fabrique_orchestration_provider.rb
130
+ - lib/soar/dependency_container/test/list_response.rb
131
+ - lib/soar/dependency_container/test/orchestrator.rb
132
+ - lib/soar/dependency_container/test/response.rb
133
+ - lib/soar/dependency_container/test/stub_orchestration_provider.rb
134
+ - lib/soar/dependency_container/version.rb
135
+ homepage: https://github.com/hetznerZA/soar-dependency_container
136
+ licenses: []
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.5.1
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: Dependency injection container
158
+ test_files: []
159
+ has_rdoc: