class RootCleanroom
addes the `define` and `use_file` method to a cleanroom. Only used when evaluating a root file
Public Class Methods
process()
click to toggle source
# File lib/roundtrip_xml/root_cleanroom.rb, line 31 def self.process proc = self.instance_variable_get(:@block) if self.superclass.respond_to? :process [proc].concat self.superclass.process else [proc] end end
Public Instance Methods
apply_template(name, &block)
click to toggle source
# File lib/roundtrip_xml/root_cleanroom.rb, line 45 def apply_template(name, &block) clazz = @runtime.fetch name raise ArgumentError, "#{name} must extend #{get_el.class.class_name}" unless clazz.ancestors.any? {|p| p == get_el.class} expanded_template = expand clazz, &block @el = expanded_template end
define(name, parent, *params, &block)
click to toggle source
# File lib/roundtrip_xml/root_cleanroom.rb, line 6 def define(name, parent, *params, &block) parent_class = @runtime.fetch parent new_class = new_roxml_class(name, parent_class) do self.instance_variable_set :@class_name, name # simply using @@params is referring to `AContainer` # hash = self.class_variable_defined?(:@@block) ? self.class_variable_get(:@@block) : {} # hash[name] = block self.instance_variable_set :@is_subclass, true self.instance_variable_set(:@block, block) params.each do |param| plain_accessor param end parent_class.plain_accessors.each do |accessor| plain_accessor accessor end def process proc = self.class.instance_variable_get(:@block)#[self.class.instance_variable_get(:@class_name)] if self.class.superclass.respond_to? :process [proc].concat self.class.superclass.process else [proc] end end def self.process proc = self.instance_variable_get(:@block) if self.superclass.respond_to? :process [proc].concat self.superclass.process else [proc] end end end @runtime.add_class name, new_class end
process()
click to toggle source
# File lib/roundtrip_xml/root_cleanroom.rb, line 23 def process proc = self.class.instance_variable_get(:@block)#[self.class.instance_variable_get(:@class_name)] if self.class.superclass.respond_to? :process [proc].concat self.class.superclass.process else [proc] end end
use_file(path)
click to toggle source
# File lib/roundtrip_xml/root_cleanroom.rb, line 56 def use_file(path) self.evaluate_file(path) end