soar-dependency_container 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: