class EimXML::OpenDSL
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/eim_xml/dsl.rb 90 def initialize 91 @_container = nil 92 yield(self) if block_given? 93 end
register(*args)
click to toggle source
# File lib/eim_xml/dsl.rb 86 def self.register(*args) 87 register_base(self, binding, *args) 88 end
register_base(dsl, binding, *args)
click to toggle source
# File lib/eim_xml/dsl.rb 78 def self.register_base(dsl, binding, *args) 79 args.each do |klass, name| 80 name ||= klass.name.downcase[/(?:.*\:\:)?(.*)$/, 1] 81 eval("def #{name}(*a, &p);_build(#{klass}, *a, &p);end", binding) 82 eval("def self.#{name}(*a, &p);self.new.#{name}(*a, &p);end", binding) 83 end 84 end
Public Instance Methods
add(v)
click to toggle source
# File lib/eim_xml/dsl.rb 95 def add(v) 96 @_container.add(v) 97 end
Also aliased as: <<
container()
click to toggle source
# File lib/eim_xml/dsl.rb 100 def container; @_container; end
Private Instance Methods
_build(klass, *arg, &proc)
click to toggle source
# File lib/eim_xml/dsl.rb 64 def _build(klass, *arg, &proc) 65 e = klass.new(*arg) 66 oc = @_container 67 oc << e if oc.is_a?(Element) 68 @_container = e 69 begin 70 proc.call(self) if proc 71 e 72 ensure 73 @_container = oc 74 end 75 end