Module RSS::RootElementMixin
In: lib/rss/rss.rb

Methods

Included Modules

XMLStyleSheetMixin

Attributes

output_encoding  [R] 

Public Class methods

[Source]

     # File lib/rss/rss.rb, line 956
956:     def initialize(rss_version, version=nil, encoding=nil, standalone=nil)
957:       super()
958:       @rss_version = rss_version
959:       @version = version || '1.0'
960:       @encoding = encoding
961:       @standalone = standalone
962:       @output_encoding = nil
963:     end

Public Instance methods

[Source]

     # File lib/rss/rss.rb, line 965
965:     def output_encoding=(enc)
966:       @output_encoding = enc
967:       self.converter = Converter.new(@output_encoding, @encoding)
968:     end

[Source]

     # File lib/rss/rss.rb, line 970
970:     def setup_maker(maker)
971:       maker.version = version
972:       maker.encoding = encoding
973:       maker.standalone = standalone
974: 
975:       xml_stylesheets.each do |xss|
976:         xss.setup_maker(maker)
977:       end
978: 
979:       setup_maker_elements(maker)
980:     end

[Source]

     # File lib/rss/rss.rb, line 982
982:     def to_xml(version=nil, &block)
983:       if version.nil? or version == @rss_version
984:         to_s
985:       else
986:         RSS::Maker.make(version) do |maker|
987:           setup_maker(maker)
988:           block.call(maker) if block
989:         end.to_s
990:       end
991:     end

Private Instance methods

[Source]

      # File lib/rss/rss.rb, line 1010
1010:     def ns_declarations
1011:       decls = {}
1012:       self.class::NSPOOL.collect do |prefix, uri|
1013:         prefix = ":#{prefix}" unless prefix.empty?
1014:         decls["xmlns#{prefix}"] = uri
1015:       end
1016:       decls
1017:     end

[Source]

      # File lib/rss/rss.rb, line 1019
1019:     def setup_maker_elements(maker)
1020:       channel.setup_maker(maker) if channel
1021:       image.setup_maker(maker) if image
1022:       textinput.setup_maker(maker) if textinput
1023:       super(maker)
1024:     end

[Source]

     # File lib/rss/rss.rb, line 994
994:     def tag(indent, attrs={}, &block)
995:       rv = xmldecl + xml_stylesheet_pi
996:       rv << super(indent, ns_declarations.merge(attrs), &block)
997:       rv
998:     end

[Source]

      # File lib/rss/rss.rb, line 1000
1000:     def xmldecl
1001:       rv = %Q[<?xml version="#{@version}"]
1002:       if @output_encoding or @encoding
1003:         rv << %Q[ encoding="#{@output_encoding or @encoding}"]
1004:       end
1005:       rv << %Q[ standalone="yes"] if @standalone
1006:       rv << "?>\n"
1007:       rv
1008:     end

[Validate]