class Mappru::DSL::Context
Attributes
result[R]
Public Class Methods
eval(dsl, path, options = {})
click to toggle source
# File lib/mappru/dsl/context.rb, line 4 def self.eval(dsl, path, options = {}) self.new(path, options) { eval(dsl, binding, path) } end
new(path, options = {}, &block)
click to toggle source
# File lib/mappru/dsl/context.rb, line 12 def initialize(path, options = {}, &block) @path = path @options = options @result = {} @context = Hashie::Mash.new( :path => path, :options => options, :templates => {} ) instance_eval(&block) end
Public Instance Methods
template(name, &block)
click to toggle source
# File lib/mappru/dsl/context.rb, line 26 def template(name, &block) @context.templates[name.to_s] = block end
Private Instance Methods
require(file)
click to toggle source
# File lib/mappru/dsl/context.rb, line 32 def require(file) rt = (file =~ %r|\A/|) ? file : File.expand_path(File.join(File.dirname(@path), file)) if File.exist?(rt) instance_eval(File.read(rt), rt) elsif File.exist?(rt + '.rb') instance_eval(File.read(rt + '.rb'), rt + '.rb') else Kernel.require(file) end end
vpc(vpc_id, &block)
click to toggle source
# File lib/mappru/dsl/context.rb, line 44 def vpc(vpc_id, &block) vpc_id = vpc_id.to_s @result[vpc_id] ||= {} @result[vpc_id].update(Mappru::DSL::Context::VPC.new(@context, vpc_id, &block).result) end