222
222
@@accessor_bases[uri][tag_name] = accessor_base.chomp("=")
225
def def_get_text_element(uri, name, file, line)
226
register_uri(uri, name)
227
unless private_instance_methods(false).include?("start_#{name}".to_sym)
228
module_eval(<<-EOT, file, line)
229
def start_#{name}(name, prefix, attrs, ns)
225
def def_get_text_element(uri, element_name, file, line)
226
register_uri(uri, element_name)
227
method_name = "start_#{element_name}"
228
unless private_method_defined?(method_name)
229
define_method(method_name) do |name, prefix, attrs, ns|
230
230
uri = _ns(ns, prefix)
231
if self.class.uri_registered?(uri, #{name.inspect})
231
if self.class.uri_registered?(uri, element_name)
232
232
start_get_text_element(name, prefix, ns, uri)
234
234
start_else_element(name, prefix, attrs, ns)
238
__send!("private", "start_#{name}")
246
243
module ListenerMixin
461
458
previous = @last_element
462
459
next_element = klass.new(@do_validate, attributes)
463
previous.__send!(:set_next_element, tag_name, next_element)
460
previous.set_next_element(tag_name, next_element)
464
461
@last_element = next_element
465
462
@last_element.parent = previous if klass.need_parent?
466
463
@xml_child_mode = @last_element.have_xml_content?