corindon 0.7.2 → 0.8.0
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
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dd263e6d3149f438f50e22fe7575fec7fcfc6d5f8755c77cd83877e5e89c0de
|
4
|
+
data.tar.gz: a33cc4b33c681d3027238dac77f1400e7a611b7502f0504aa5e8b6db2d28ac0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13d607a74528b870f3d064a94b6913a4a76ea69ce5d4463ce6f0c41dd65c97c115d9aaeb07c05dc6f874910619dc8354c2670084cf71747e2330b34be46be145
|
7
|
+
data.tar.gz: 1c63ab07e90abbec9c23b04c7c6a097e39dbf23b2faf4f9cecaabb27006f0ee52aec72ee03c477157480931d9cfab95979357890bcc273de62f08bffbb02eaec
|
data/corindon.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_development_dependency 'bundler'
|
22
22
|
s.add_development_dependency 'minitest', '~> 5.14'
|
23
|
+
s.add_development_dependency 'minitest-reporters', '~> 1.4'
|
23
24
|
s.add_development_dependency 'rake', '~> 13.0'
|
24
25
|
s.add_development_dependency 'rubocop', '1.3.1'
|
25
26
|
end
|
@@ -8,7 +8,8 @@ module Corindon
|
|
8
8
|
attr_reader :injector
|
9
9
|
|
10
10
|
# @param [Array<Definition>] definitions
|
11
|
-
|
11
|
+
# @param [ParameterBag] parameters
|
12
|
+
def initialize(definitions: [], parameters: ParameterBag.new, service_built_listeners: [])
|
12
13
|
@services = {}
|
13
14
|
@definitions = {}
|
14
15
|
@parameters = parameters
|
@@ -25,7 +26,7 @@ module Corindon
|
|
25
26
|
def dup
|
26
27
|
Container.new(
|
27
28
|
definitions: definitions.values,
|
28
|
-
parameters: parameters.dup,
|
29
|
+
parameters: ParameterBag.new(parameters.bag.dup),
|
29
30
|
service_built_listeners: service_built_listeners
|
30
31
|
)
|
31
32
|
end
|
@@ -105,22 +106,22 @@ module Corindon
|
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
108
|
-
# @param [Class,
|
109
|
+
# @param [Class, String, Token::ParameterToken] key
|
109
110
|
# @param [Object] value
|
110
|
-
def set_parameter(
|
111
|
-
parameters
|
111
|
+
def set_parameter(key, value)
|
112
|
+
parameters.set(key, value)
|
112
113
|
end
|
113
114
|
|
114
|
-
# @param [Class,
|
115
|
+
# @param [Class, String, Token::ParameterToken] key
|
115
116
|
# @return [Boolean]
|
116
117
|
def parameter?(key)
|
117
|
-
parameters.
|
118
|
+
parameters.has?(key)
|
118
119
|
end
|
119
120
|
|
120
|
-
# @param [Class,
|
121
|
+
# @param [Class, String, Token::ParameterToken] key
|
121
122
|
# @return [Object]
|
122
123
|
def parameter(key)
|
123
|
-
parameters.
|
124
|
+
parameters.get(key)
|
124
125
|
end
|
125
126
|
|
126
127
|
# @param [Proc{Object, Container}] listener
|
@@ -132,6 +133,7 @@ module Corindon
|
|
132
133
|
|
133
134
|
# @return [Hash{String=>Definition}]
|
134
135
|
attr_reader :definitions
|
136
|
+
# @return [ParameterBag]
|
135
137
|
attr_reader :parameters
|
136
138
|
attr_reader :services
|
137
139
|
attr_reader :tags
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Corindon
|
4
|
+
module DependencyInjection
|
5
|
+
class ParameterBag
|
6
|
+
# @return [Hash{String => Object}]
|
7
|
+
attr_reader :bag
|
8
|
+
|
9
|
+
# @param [Hash{String => Object}] bag
|
10
|
+
def initialize(bag = {})
|
11
|
+
@bag = bag
|
12
|
+
end
|
13
|
+
|
14
|
+
# @param [Class, String, Token::ParameterToken] key
|
15
|
+
# @return [Boolean]
|
16
|
+
def has?(key)
|
17
|
+
@bag.key?(to_key(key))
|
18
|
+
end
|
19
|
+
|
20
|
+
# @param [Class, String, Token::ParameterToken] key
|
21
|
+
# @return [Object]
|
22
|
+
def get(key)
|
23
|
+
@bag.fetch(to_key(key))
|
24
|
+
end
|
25
|
+
|
26
|
+
# @param [Class, String, Token::ParameterToken] key
|
27
|
+
# @param [Object] value
|
28
|
+
def set(key, value)
|
29
|
+
@bag[to_key(key)] = value
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def to_key(keylike)
|
35
|
+
if keylike.is_a?(Class)
|
36
|
+
keylike.name
|
37
|
+
elsif keylike.is_a?(Token::ParameterToken)
|
38
|
+
keylike.key
|
39
|
+
elsif keylike.is_a?(String)
|
40
|
+
keylike
|
41
|
+
else
|
42
|
+
raise StandardError.new("#{keylike} is not a valid key (objects of class #{keylike.class.name} are not handled.")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/corindon/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: corindon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rémi Piotaix
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '5.14'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest-reporters
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.4'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.4'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,6 +121,7 @@ files:
|
|
107
121
|
- lib/corindon/dependency_injection/dsl.rb
|
108
122
|
- lib/corindon/dependency_injection/injectable.rb
|
109
123
|
- lib/corindon/dependency_injection/injector.rb
|
124
|
+
- lib/corindon/dependency_injection/parameter_bag.rb
|
110
125
|
- lib/corindon/dependency_injection/ruby_compat.rb
|
111
126
|
- lib/corindon/dependency_injection/testing/mock_utils.rb
|
112
127
|
- lib/corindon/dependency_injection/token/injection_token.rb
|