Class | EimXML::BaseDSL |
In: |
lib/eim_xml/dsl.rb
|
Parent: | Object |
# File lib/eim_xml/dsl.rb, line 51 51: def self.register(*args) 52: args.each do |klass, name| 53: name ||= klass.name.downcase[/(?:.*\:\:)?(.*)$/, 1] 54: eval("def #{name}(*a, &p);_build(#{klass}, *a, &p);end", binding) 55: eval("def self.#{name}(*a, &p);new.#{name}(*a, &p);end", binding) 56: end 57: end
# File lib/eim_xml/dsl.rb, line 16 16: def import_variables(src) 17: src.instance_variables.each do |v| 18: instance_variable_set(v, src.instance_variable_get(v)) unless v=~/\A@_[^_]/ 19: end 20: self 21: end
# File lib/eim_xml/dsl.rb, line 23 23: def _build(klass, *arg, &proc) 24: e = klass.new(*arg) 25: @_container << e if @_container 26: if proc 27: oc = @_container 28: @_container = e 29: begin 30: instance_eval(&proc) 31: ensure 32: @_container = oc 33: end 34: end 35: e 36: end