Class: RSS::XMLScanListener

Inherits:
BaseListener show all
Includes:
ListenerMixin, XMLScan::Visitor
Defined in:
lib/rss/xmlscanner.rb

Constant Summary collapse

ENTITIES =
{
  'lt' => '<',
  'gt' => '>',
  'amp' => '&',
  'quot' => '"',
  'apos' => '\''
}

Instance Attribute Summary

Attributes included from ListenerMixin

#do_validate, #ignore_unknown_element, #rss

Instance Method Summary collapse

Methods included from ListenerMixin

#initialize, #instruction, #tag_end, #tag_start, #text, #xmldecl

Methods inherited from BaseListener

available_tags, class_name, getter, install_class_name, install_get_text_element, raise_for_undefined_entity?, register_uri, setter, uri_registered?

Methods included from Utils

element_initialize_arguments?, get_file_and_line_from_caller, html_escape, new_with_value_if_need, to_class_name

Instance Method Details

#on_attr_charref(code) ⇒ Object Also known as: on_attr_charref_hex



95
96
97
# File 'lib/rss/xmlscanner.rb', line 95

def on_attr_charref(code)
  @current_attr << [code].pack('U')
end

#on_attr_entityref(ref) ⇒ Object



91
92
93
# File 'lib/rss/xmlscanner.rb', line 91

def on_attr_entityref(ref)
  @current_attr << entity(ref)
end

#on_attr_value(str) ⇒ Object



87
88
89
# File 'lib/rss/xmlscanner.rb', line 87

def on_attr_value(str)
  @current_attr << str
end

#on_attribute(name) ⇒ Object



83
84
85
# File 'lib/rss/xmlscanner.rb', line 83

def on_attribute(name)
  @attrs[name] = @current_attr = ''
end

#on_charref(code) ⇒ Object Also known as: on_charref_hex



73
74
75
# File 'lib/rss/xmlscanner.rb', line 73

def on_charref(code)
  text([code].pack('U'))
end

#on_entityref(ref) ⇒ Object



69
70
71
# File 'lib/rss/xmlscanner.rb', line 69

def on_entityref(ref)
  text(entity(ref))
end

#on_etag(name) ⇒ Object



65
66
67
# File 'lib/rss/xmlscanner.rb', line 65

def on_etag(name)
  tag_end(name)
end

#on_stag(name) ⇒ Object



79
80
81
# File 'lib/rss/xmlscanner.rb', line 79

def on_stag(name)
  @attrs = {}
end

#on_stag_end(name) ⇒ Object



101
102
103
# File 'lib/rss/xmlscanner.rb', line 101

def on_stag_end(name)
  tag_start(name, @attrs)
end

#on_stag_end_empty(name) ⇒ Object



105
106
107
108
# File 'lib/rss/xmlscanner.rb', line 105

def on_stag_end_empty(name)
  tag_start(name, @attrs)
  tag_end(name)
end

#on_xmldecl_encoding(str) ⇒ Object



49
50
51
# File 'lib/rss/xmlscanner.rb', line 49

def on_xmldecl_encoding(str)
  @encoding = str
end

#on_xmldecl_endObject



57
58
59
# File 'lib/rss/xmlscanner.rb', line 57

def on_xmldecl_end
  xmldecl(@version, @encoding, @standalone == "yes")
end

#on_xmldecl_standalone(str) ⇒ Object



53
54
55
# File 'lib/rss/xmlscanner.rb', line 53

def on_xmldecl_standalone(str)
  @standalone = str
end

#on_xmldecl_version(str) ⇒ Object



45
46
47
# File 'lib/rss/xmlscanner.rb', line 45

def on_xmldecl_version(str)
  @version = str
end