Module: Syro::Container

Defined in:
lib/syro/container.rb,
lib/syro/container/version.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(deck) ⇒ Object



8
9
10
# File 'lib/syro/container.rb', line 8

def self.included(deck)
  deck.extend ClassMethods
end

Instance Method Details

#initialize(before) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/syro/container.rb', line 12

def initialize(before)
  code = Proc.new do
    instance_eval(&before) if before
    resolve!
  end

  super(code)
end

#resolve!Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/syro/container.rb', line 21

def resolve!
  return if @resolved
  @resolved = true

  segment = self.path.curr.split('/')[1]
  app = self.class.container.resolve(segment)
  self.path.consume(segment)
  run(app)
rescue Dry::Container::Error
end