Class: Corindon::DependencyInjection::Dsl
- Inherits:
-
Object
- Object
- Corindon::DependencyInjection::Dsl
- Defined in:
- lib/corindon/dependency_injection/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #args(*arguments, **kv_arguments) ⇒ Object
- #call(name, *arguments, **kv_arguments) ⇒ Object
- #exec(context: {}, &block) ⇒ Definition
- #id(id) ⇒ Object
-
#initialize(klass, args: [], kwargs: {}, id: nil, calls: [], tags: []) ⇒ Dsl
constructor
A new instance of Dsl.
- #on(id) ⇒ Token::ServiceCallToken
- #param(key) ⇒ Token::ParameterToken
- #tag(tag) ⇒ Object
- #tagged(tag) ⇒ Token::TaggedToken
- #value(val) ⇒ Token::ValueToken
Constructor Details
#initialize(klass, args: [], kwargs: {}, id: nil, calls: [], tags: []) ⇒ Dsl
Returns a new instance of Dsl.
22 23 24 25 26 27 28 29 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 22 def initialize(klass, args: [], kwargs: {}, id: nil, calls: [], tags: []) @klass = klass @args = args @kwargs = kwargs @calls = calls @tags = @id = id end |
Class Method Details
.from_definition(definition) ⇒ Dsl
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 9 def from_definition(definition) new( definition.object_source, id: definition.id, args: definition.args, kwargs: definition.kwargs, calls: definition.calls, tags: definition. ) end |
Instance Method Details
#args(*arguments, **kv_arguments) ⇒ Object
43 44 45 46 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 43 def args(*arguments, **kv_arguments) @args = arguments @kwargs = kv_arguments end |
#call(name, *arguments, **kv_arguments) ⇒ Object
49 50 51 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 49 def call(name, *arguments, **kv_arguments) @calls << [name, arguments, kv_arguments] end |
#exec(context: {}, &block) ⇒ Definition
33 34 35 36 37 38 39 40 41 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 33 def exec(context: {}, &block) if context.is_a?(Hash) context = OpenStruct.new(context) end instance_exec(context, &block) Definition.new(@klass, args: @args, kwargs: @kwargs, calls: @calls, tags: @tags, id: @id) end |
#id(id) ⇒ Object
54 55 56 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 54 def id(id) @id = id end |
#on(id) ⇒ Token::ServiceCallToken
70 71 72 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 70 def on(id) Token::ServiceCallToken.new(service: id) end |
#param(key) ⇒ Token::ParameterToken
60 61 62 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 60 def param(key) Token::ParameterToken.new(key: key) end |
#tag(tag) ⇒ Object
65 66 67 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 65 def tag(tag) @tags << tag end |
#tagged(tag) ⇒ Token::TaggedToken
81 82 83 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 81 def tagged(tag) Token::TaggedToken.new(tag) end |
#value(val) ⇒ Token::ValueToken
75 76 77 |
# File 'lib/corindon/dependency_injection/dsl.rb', line 75 def value(val) Token::ValueToken.new(value: val) end |