class Bedouin::Environment::DSL

Public Class Methods

new(filename) click to toggle source
# File lib/bedouin/environment.rb, line 14
def initialize(filename)
  @filename=filename
end

Public Instance Methods

environment(name,parent=nil,&block) click to toggle source
# File lib/bedouin/environment.rb, line 40
def environment(name,parent=nil,&block)
  parent_hash = resolve_parent(parent)
  e = Environment.new(name,parent_hash)
  e.instance_eval &block if block_given?
  return e
end
evaluate() click to toggle source
# File lib/bedouin/environment.rb, line 18
def evaluate
  self.instance_eval(File.read(@filename), @filename)
end
resolve_parent(parent) click to toggle source
# File lib/bedouin/environment.rb, line 22
def resolve_parent(parent)
  parent_hash = case parent
  when String
    parent_path = File.expand_path(parent, File.dirname(@filename))
    Environment.parse(parent_path)
  when NilClass
    nil
  else
    parent
  end

  unless parent_hash.respond_to? :to_h
    raise ArgumentError.new "#{parent.class} not a valid type for environment parent"
  end

  parent_hash
end