123456789_123456789_123456789_123456789_123456789_

Module: RSS::RootElementMixin

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Defined in: lib/rss/rss.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#encoding (rw)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1256

attr_accessor :version, :encoding, :standalone

#feed_subtype (readonly)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1255

attr_reader :feed_type, :feed_subtype, :feed_version

#feed_type (readonly)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1255

attr_reader :feed_type, :feed_subtype, :feed_version

#feed_version (readonly)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1255

attr_reader :feed_type, :feed_subtype, :feed_version

#output_encoding (rw)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1254

attr_reader :output_encoding

#output_encoding=(enc) (rw)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1272

def output_encoding=(enc)
  @output_encoding = enc
  self.converter = Converter.new(@output_encoding, @encoding)
end

#standalone (rw)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1256

attr_accessor :version, :encoding, :standalone

#version (rw)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1256

attr_accessor :version, :encoding, :standalone

Instance Method Details

#feed_info

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1268

def feed_info
  [@feed_type, @feed_version, @feed_subtype]
end

#initialize(feed_version, version = nil, encoding = nil, standalone = nil)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1257

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

#maker_target(target) (private)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1349

def maker_target(target)
  target
end

#ns_declarations (private)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1340

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) ⇒ Boolean (private)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1313

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

#setup_maker(maker)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1277

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

#tag(indent, attrs = {}, &block) (private)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1324

def tag(indent, attrs={}, &block)
  rv = super(indent, ns_declarations.merge(attrs), &block)
  return rv if rv.empty?
  "#{xmldecl}#{xml_stylesheet_pi}#{rv}"
end

#to_atom(type, &block)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1300

def to_atom(type, &block)
  to_feed("atom:#{type}", &block)
end

#to_feed(type, &block)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1289

def to_feed(type, &block)
  Maker.make(type) do |maker|
    setup_maker(maker)
    block.call(maker) if block
  end
end

#to_rss(type, &block)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1296

def to_rss(type, &block)
  to_feed("rss#{type}", &block)
end

#to_xml(type = nil, &block)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1304

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

#xmldecl (private)

[ GitHub ]

  
# File 'lib/rss/rss.rb', line 1330

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