class RSS::BaseListener
Public Class Methods
class_name(uri, tag_name)
click to toggle source
retrieve class_name
for the supplied uri and tag_name If it doesn't exist, capitalize the tag_name
# File lib/rss/parser.rb, line 220 def class_name(uri, tag_name) name = (@@class_names[uri] || {})[tag_name] return name if name tag_name = tag_name.gsub(/[_\-]([a-z]?)/) {$1.upcase} tag_name[0, 1].upcase + tag_name[1..-1] end
getter(uri, tag_name)
click to toggle source
# File lib/rss/parser.rb, line 192 def getter(uri, tag_name) (@@accessor_bases[uri] || {})[tag_name] end
install_class_name(uri, tag_name, class_name)
click to toggle source
record class_name
for the supplied uri and tag_name
# File lib/rss/parser.rb, line 213 def install_class_name(uri, tag_name, class_name) @@class_names[uri] ||= {} @@class_names[uri][tag_name] = class_name end
install_get_text_element(uri, name, accessor_base)
click to toggle source
# File lib/rss/parser.rb, line 228 def install_get_text_element(uri, name, accessor_base) install_accessor_base(uri, name, accessor_base) def_get_text_element(uri, name, *get_file_and_line_from_caller(1)) end
raise_for_undefined_entity?()
click to toggle source
# File lib/rss/parser.rb, line 233 def raise_for_undefined_entity? true end
register_uri(uri, name)
click to toggle source
register uri against this name.
# File lib/rss/parser.rb, line 202 def register_uri(uri, name) @@registered_uris[name] ||= {} @@registered_uris[name][uri] = nil end
setter(uri, tag_name)
click to toggle source
return the setter for the uri, tag_name pair, or nil.
# File lib/rss/parser.rb, line 183 def setter(uri, tag_name) _getter = getter(uri, tag_name) if _getter "#{_getter}=" else nil end end
uri_registered?(uri, name)
click to toggle source
test if this uri is registered against this name
# File lib/rss/parser.rb, line 208 def uri_registered?(uri, name) @@registered_uris[name].has_key?(uri) end
Private Class Methods
def_get_text_element(uri, element_name, file, line)
click to toggle source
# File lib/rss/parser.rb, line 244 def def_get_text_element(uri, element_name, file, line) register_uri(uri, element_name) method_name = "start_#{element_name}" unless private_method_defined?(method_name) define_method(method_name) do |name, prefix, attrs, ns| uri = _ns(ns, prefix) if self.class.uri_registered?(uri, element_name) start_get_text_element(name, prefix, ns, uri) else start_else_element(name, prefix, attrs, ns) end end private(method_name) end end
install_accessor_base(uri, tag_name, accessor_base)
click to toggle source
set the accessor for the uri, tag_name pair
# File lib/rss/parser.rb, line 239 def install_accessor_base(uri, tag_name, accessor_base) @@accessor_bases[uri] ||= {} @@accessor_bases[uri][tag_name] = accessor_base.chomp("=") end