Class: Bedouin::Environment::DSL
- Inherits:
-
Object
- Object
- Bedouin::Environment::DSL
- Defined in:
- lib/bedouin/environment.rb
Instance Method Summary collapse
- #environment(name, parent = nil, &block) ⇒ Object
- #evaluate ⇒ Object
-
#initialize(filename) ⇒ DSL
constructor
A new instance of DSL.
- #resolve_parent(parent) ⇒ Object
Constructor Details
#initialize(filename) ⇒ DSL
14 15 16 |
# File 'lib/bedouin/environment.rb', line 14 def initialize(filename) @filename=filename end |
Instance Method Details
#environment(name, parent = nil, &block) ⇒ Object
40 41 42 43 44 45 |
# 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 ⇒ Object
18 19 20 |
# File 'lib/bedouin/environment.rb', line 18 def evaluate self.instance_eval(File.read(@filename), @filename) end |
#resolve_parent(parent) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bedouin/environment.rb', line 22 def resolve_parent(parent) parent_hash = case parent when String parent_path = File.(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 |