module Kamaze::DockerImage::Loader::Context

Provides empty binding.

Sample of use:

“`ruby Context.call do |b|

b.local_variable_set(:answer, 42)
b.local_variable_set(:home, '127.0.0.1')

b.eval(content)

end “`

Public Class Methods

call() { |binding| ... } click to toggle source
# File lib/kamaze/docker_image/loader/context.rb, line 25
def call
  yield(binding)
end
dsl?() click to toggle source

Denote “DSL“ is defined.

@return [Boolean]

# File lib/kamaze/docker_image/loader/context.rb, line 32
def dsl?
  !!dsl
end

Protected Class Methods

binding() click to toggle source

@return [Binding]

Calls superclass method
# File lib/kamaze/docker_image/loader/context.rb, line 39
def binding
  -> { super }.tap { load_dsl }.call
end
dsl() click to toggle source

@return [Rake::DSL, nil]

# File lib/kamaze/docker_image/loader/context.rb, line 44
def dsl
  Object.const_get('Rake::DSL')
rescue NameError
  nil
end
load_dsl() click to toggle source

Apply “Rake::DSL“

@return [self]

# File lib/kamaze/docker_image/loader/context.rb, line 53
def load_dsl
  self.tap { self.extend(dsl) if dsl? }
end