Class: RSS::BaseListener

Inherits:
Object
  • Object
show all
Extended by:
Utils
Defined in:
lib/rss/parser.rb

Direct Known Subclasses

REXMLListener, XMLParserListener, XMLScanListener

Constant Summary collapse

@@accessor_bases =
{}
@@registered_uris =
{}
@@class_names =
{}

Class Method Summary collapse

Methods included from Utils

element_initialize_arguments?, get_file_and_line_from_caller, html_escape, new_with_value_if_need, to_class_name

Class Method Details

.available_tags(uri) ⇒ Object

return the tag_names for setters associated with uri



196
197
198
# File 'lib/rss/parser.rb', line 196

def available_tags(uri)
  (@@accessor_bases[uri] || {}).keys
end

.class_name(uri, tag_name) ⇒ Object

retrieve class_name for the supplied uri and tag_name If it doesn’t exist, capitalize the tag_name



219
220
221
222
223
224
225
# File 'lib/rss/parser.rb', line 219

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) ⇒ Object



191
192
193
# File 'lib/rss/parser.rb', line 191

def getter(uri, tag_name)
  (@@accessor_bases[uri] || {})[tag_name]
end

.install_class_name(uri, tag_name, class_name) ⇒ Object

record class_name for the supplied uri and tag_name



212
213
214
215
# File 'lib/rss/parser.rb', line 212

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) ⇒ Object



227
228
229
230
# File 'lib/rss/parser.rb', line 227

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?Boolean

Returns:

  • (Boolean)


232
233
234
# File 'lib/rss/parser.rb', line 232

def raise_for_undefined_entity?
  true
end

.register_uri(uri, name) ⇒ Object

register uri against this name.



201
202
203
204
# File 'lib/rss/parser.rb', line 201

def register_uri(uri, name)
  @@registered_uris[name] ||= {}
  @@registered_uris[name][uri] = nil
end

.setter(uri, tag_name) ⇒ Object

return the setter for the uri, tag_name pair, or nil.



182
183
184
185
186
187
188
189
# File 'lib/rss/parser.rb', line 182

def setter(uri, tag_name)
  _getter = getter(uri, tag_name)
  if _getter
    "#{_getter}="
  else
    nil
  end
end

.uri_registered?(uri, name) ⇒ Boolean

test if this uri is registered against this name

Returns:

  • (Boolean)


207
208
209
# File 'lib/rss/parser.rb', line 207

def uri_registered?(uri, name)
  @@registered_uris[name].has_key?(uri)
end