Class: Corindon::DependencyInjection::Dsl

Inherits:
Object
  • Object
show all
Defined in:
lib/corindon/dependency_injection/dsl.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass, args: [], kwargs: {}, id: nil, anonymous: false) ⇒ Dsl

Returns a new instance of Dsl.

Parameters:

  • klass (Class)


7
8
9
10
11
12
13
14
15
# File 'lib/corindon/dependency_injection/dsl.rb', line 7

def initialize(klass, args: [], kwargs: {}, id: nil, anonymous: false)
  @klass = klass
  @args = args
  @kwargs = kwargs
  @calls = []
  @tags = []
  @id = id
  @anonymous = anonymous
end

Instance Method Details

#anonymous!Object



40
41
42
43
# File 'lib/corindon/dependency_injection/dsl.rb', line 40

def anonymous!
  @anonymous = true
  @id = nil
end

#args(*arguments, **kv_arguments) ⇒ Object



24
25
26
27
# File 'lib/corindon/dependency_injection/dsl.rb', line 24

def args(*arguments, **kv_arguments)
  @args = arguments
  @kwargs = kv_arguments
end

#call(name, *arguments, **kv_arguments) ⇒ Object

Parameters:

  • name (String)


30
31
32
# File 'lib/corindon/dependency_injection/dsl.rb', line 30

def call(name, *arguments, **kv_arguments)
  @calls << [name, arguments, kv_arguments]
end

#exec(&block) ⇒ Definition

Returns:



18
19
20
21
22
# File 'lib/corindon/dependency_injection/dsl.rb', line 18

def exec(&block)
  instance_exec(&block)

  Definition.new(@klass, args: @args, kwargs: @kwargs, calls: @calls, tags: @tags, id: @id, anonymous: @anonymous)
end

#id(id) ⇒ Object

Parameters:

  • id (String)


35
36
37
38
# File 'lib/corindon/dependency_injection/dsl.rb', line 35

def id(id)
  @anonymous = false
  @id = id
end

#on(id) ⇒ Token::ServiceCallToken



57
58
59
# File 'lib/corindon/dependency_injection/dsl.rb', line 57

def on(id)
  Token::ServiceCallToken.new(service: id)
end

#param(key) ⇒ Token::ParameterToken

Parameters:

  • key (Class, #to_s)

Returns:



47
48
49
# File 'lib/corindon/dependency_injection/dsl.rb', line 47

def param(key)
  Token::ParameterToken.new(key: key)
end

#tag(tag) ⇒ Object

Parameters:

  • tag (String)


52
53
54
# File 'lib/corindon/dependency_injection/dsl.rb', line 52

def tag(tag)
  @tags << tag
end

#tagged(tag) ⇒ Token::TaggedToken

Parameters:

  • tag (String)

Returns:



68
69
70
# File 'lib/corindon/dependency_injection/dsl.rb', line 68

def tagged(tag)
  Token::TaggedToken.new(tag)
end

#value(val) ⇒ Token::ValueToken

Returns:



62
63
64
# File 'lib/corindon/dependency_injection/dsl.rb', line 62

def value(val)
  Token::ValueToken.new(value: val)
end