Class RSS::BaseListener
In: lib/rss/parser.rb
Parent: Object

Methods

Public Class methods

return the tag_names for setters associated with uri

[Source]

     # File lib/rss/parser.rb, line 196
196:       def available_tags(uri)
197:         (@@accessor_bases[uri] || {}).keys
198:       end

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

[Source]

     # File lib/rss/parser.rb, line 219
219:       def class_name(uri, tag_name)
220:         name = (@@class_names[uri] || {})[tag_name]
221:         return name if name
222: 
223:         tag_name = tag_name.gsub(/[_\-]([a-z]?)/) do
224:           $1.upcase
225:         end
226:         tag_name[0, 1].upcase + tag_name[1..-1]
227:       end

[Source]

     # File lib/rss/parser.rb, line 191
191:       def getter(uri, tag_name)
192:         (@@accessor_bases[uri] || {})[tag_name]
193:       end

record class_name for the supplied uri and tag_name

[Source]

     # File lib/rss/parser.rb, line 212
212:       def install_class_name(uri, tag_name, class_name)
213:         @@class_names[uri] ||= {}
214:         @@class_names[uri][tag_name] = class_name
215:       end

[Source]

     # File lib/rss/parser.rb, line 229
229:       def install_get_text_element(uri, name, accessor_base)
230:         install_accessor_base(uri, name, accessor_base)
231:         def_get_text_element(uri, name, *get_file_and_line_from_caller(1))
232:       end

[Source]

     # File lib/rss/parser.rb, line 234
234:       def raise_for_undefined_entity?
235:         true
236:       end

register uri against this name.

[Source]

     # File lib/rss/parser.rb, line 201
201:       def register_uri(uri, name)
202:         @@registered_uris[name] ||= {}
203:         @@registered_uris[name][uri] = nil
204:       end

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

[Source]

     # File lib/rss/parser.rb, line 182
182:       def setter(uri, tag_name)
183:         _getter = getter(uri, tag_name)
184:         if _getter
185:           "#{_getter}="
186:         else
187:           nil
188:         end
189:       end

test if this uri is registered against this name

[Source]

     # File lib/rss/parser.rb, line 207
207:       def uri_registered?(uri, name)
208:         @@registered_uris[name].has_key?(uri)
209:       end

Private Class methods

[Source]

     # File lib/rss/parser.rb, line 245
245:       def def_get_text_element(uri, element_name, file, line)
246:         register_uri(uri, element_name)
247:         method_name = "start_#{element_name}"
248:         unless private_method_defined?(method_name)
249:           define_method(method_name) do |name, prefix, attrs, ns|
250:             uri = _ns(ns, prefix)
251:             if self.class.uri_registered?(uri, element_name)
252:               start_get_text_element(name, prefix, ns, uri)
253:             else
254:               start_else_element(name, prefix, attrs, ns)
255:             end
256:           end
257:           private(method_name)
258:         end
259:       end

set the accessor for the uri, tag_name pair

[Source]

     # File lib/rss/parser.rb, line 240
240:       def install_accessor_base(uri, tag_name, accessor_base)
241:         @@accessor_bases[uri] ||= {}
242:         @@accessor_bases[uri][tag_name] = accessor_base.chomp("=")
243:       end

[Validate]