module RSS::RootElementMixin
Attributes
encoding[RW]
feed_subtype[R]
feed_type[R]
feed_version[R]
output_encoding[R]
standalone[RW]
version[RW]
Public Class Methods
new(feed_version, version=nil, encoding=nil, standalone=nil)
click to toggle source
Calls superclass method
RSS::XMLStyleSheetMixin.new
# File lib/rss/rss.rb, line 1256 def initialize(feed_version, version=nil, encoding=nil, standalone=nil) super() @feed_type = nil @feed_subtype = nil @feed_version = feed_version @version = version || '1.0' @encoding = encoding @standalone = standalone @output_encoding = nil end
Public Instance Methods
feed_info()
click to toggle source
# File lib/rss/rss.rb, line 1267 def feed_info [@feed_type, @feed_version, @feed_subtype] end
output_encoding=(enc)
click to toggle source
# File lib/rss/rss.rb, line 1271 def output_encoding=(enc) @output_encoding = enc self.converter = Converter.new(@output_encoding, @encoding) end
setup_maker(maker)
click to toggle source
Calls superclass method
# File lib/rss/rss.rb, line 1276 def setup_maker(maker) maker.version = version maker.encoding = encoding maker.standalone = standalone xml_stylesheets.each do |xss| xss.setup_maker(maker) end super end
to_atom(type, &block)
click to toggle source
# File lib/rss/rss.rb, line 1299 def to_atom(type, &block) to_feed("atom:#{type}", &block) end
to_feed(type, &block)
click to toggle source
# File lib/rss/rss.rb, line 1288 def to_feed(type, &block) Maker.make(type) do |maker| setup_maker(maker) block.call(maker) if block end end
to_rss(type, &block)
click to toggle source
# File lib/rss/rss.rb, line 1295 def to_rss(type, &block) to_feed("rss#{type}", &block) end
to_xml(type=nil, &block)
click to toggle source
# File lib/rss/rss.rb, line 1303 def to_xml(type=nil, &block) if type.nil? or same_feed_type?(type) to_s else to_feed(type, &block).to_s end end
Private Instance Methods
maker_target(target)
click to toggle source
# File lib/rss/rss.rb, line 1348 def maker_target(target) target end
ns_declarations()
click to toggle source
# File lib/rss/rss.rb, line 1339 def ns_declarations decls = {} self.class::NSPOOL.collect do |prefix, uri| prefix = ":#{prefix}" unless prefix.empty? decls["xmlns#{prefix}"] = uri end decls end
same_feed_type?(type)
click to toggle source
# File lib/rss/rss.rb, line 1312 def same_feed_type?(type) if /^(atom|rss)?(\d+\.\d+)?(?::(.+))?$/i =~ type feed_type = ($1 || @feed_type).downcase feed_version = $2 || @feed_version feed_subtype = $3 || @feed_subtype [feed_type, feed_version, feed_subtype] == feed_info else false end end
tag(indent, attrs={}, &block)
click to toggle source
Calls superclass method
# File lib/rss/rss.rb, line 1323 def tag(indent, attrs={}, &block) rv = super(indent, ns_declarations.merge(attrs), &block) return rv if rv.empty? "#{xmldecl}#{xml_stylesheet_pi}#{rv}" end
xmldecl()
click to toggle source
# File lib/rss/rss.rb, line 1329 def xmldecl rv = %Q[<?xml version="#{@version}"] if @output_encoding or @encoding rv << %Q[ encoding="#{@output_encoding or @encoding}"] end rv << %Q[ standalone="yes"] if @standalone rv << "?>\n" rv end