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