Module | RSS::RootElementMixin |
In: |
lib/rss/rss.rb
|
encoding | [RW] | |
feed_subtype | [R] | |
feed_type | [R] | |
feed_version | [R] | |
output_encoding | [R] | |
standalone | [RW] | |
version | [RW] |
# File lib/rss/rss.rb, line 1238 1238: def initialize(feed_version, version=nil, encoding=nil, standalone=nil) 1239: super() 1240: @feed_type = nil 1241: @feed_subtype = nil 1242: @feed_version = feed_version 1243: @version = version || '1.0' 1244: @encoding = encoding 1245: @standalone = standalone 1246: @output_encoding = nil 1247: end
# File lib/rss/rss.rb, line 1249 1249: def feed_info 1250: [@feed_type, @feed_version, @feed_subtype] 1251: end
# File lib/rss/rss.rb, line 1253 1253: def output_encoding=(enc) 1254: @output_encoding = enc 1255: self.converter = Converter.new(@output_encoding, @encoding) 1256: end
# File lib/rss/rss.rb, line 1258 1258: def setup_maker(maker) 1259: maker.version = version 1260: maker.encoding = encoding 1261: maker.standalone = standalone 1262: 1263: xml_stylesheets.each do |xss| 1264: xss.setup_maker(maker) 1265: end 1266: 1267: super 1268: end
# File lib/rss/rss.rb, line 1281 1281: def to_atom(type, &block) 1282: to_feed("atom:#{type}", &block) 1283: end
# File lib/rss/rss.rb, line 1270 1270: def to_feed(type, &block) 1271: Maker.make(type) do |maker| 1272: setup_maker(maker) 1273: block.call(maker) if block 1274: end 1275: end
# File lib/rss/rss.rb, line 1277 1277: def to_rss(type, &block) 1278: to_feed("rss#{type}", &block) 1279: end
# File lib/rss/rss.rb, line 1285 1285: def to_xml(type=nil, &block) 1286: if type.nil? or same_feed_type?(type) 1287: to_s 1288: else 1289: to_feed(type, &block).to_s 1290: end 1291: end
# File lib/rss/rss.rb, line 1321 1321: def ns_declarations 1322: decls = {} 1323: self.class::NSPOOL.collect do |prefix, uri| 1324: prefix = ":#{prefix}" unless prefix.empty? 1325: decls["xmlns#{prefix}"] = uri 1326: end 1327: decls 1328: end
# File lib/rss/rss.rb, line 1294 1294: def same_feed_type?(type) 1295: if /^(atom|rss)?(\d+\.\d+)?(?::(.+))?$/i =~ type 1296: feed_type = ($1 || @feed_type).downcase 1297: feed_version = $2 || @feed_version 1298: feed_subtype = $3 || @feed_subtype 1299: [feed_type, feed_version, feed_subtype] == feed_info 1300: else 1301: false 1302: end 1303: end
# File lib/rss/rss.rb, line 1305 1305: def tag(indent, attrs={}, &block) 1306: rv = super(indent, ns_declarations.merge(attrs), &block) 1307: return rv if rv.empty? 1308: "#{xmldecl}#{xml_stylesheet_pi}#{rv}" 1309: end