module RSS::Maker::AtomTextConstructBase::EnsureXMLContent

Public Class Methods

included(base) click to toggle source
Calls superclass method
# File lib/rss/maker/base.rb, line 294
def included(base)
  super
  base.class_eval do
    %w(type content xml_content).each do |element|
      attr_reader element
      attr_writer element if element != "xml_content"
      add_need_initialize_variable(element)
    end

    alias_method(:xhtml, :xml_content)
  end
end

Public Instance Methods

ensure_xml_content(content) click to toggle source
# File lib/rss/maker/base.rb, line 308
def ensure_xml_content(content)
  xhtml_uri = ::RSS::Atom::XHTML_URI
  unless content.is_a?(RSS::XML::Element) and
      ["div", xhtml_uri] == [content.name, content.uri]
    children = content
    children = [children] unless content.is_a?(Array)
    children = set_xhtml_uri_as_default_uri(children)
    content = RSS::XML::Element.new("div", nil, xhtml_uri,
                                    {"xmlns" => xhtml_uri},
                                    children)
  end
  content
end
xhtml=(content) click to toggle source
# File lib/rss/maker/base.rb, line 326
def xhtml=(content)
  self.xml_content = content
end
xml_content=(content) click to toggle source
# File lib/rss/maker/base.rb, line 322
def xml_content=(content)
  @xml_content = ensure_xml_content(content)
end

Private Instance Methods

set_xhtml_uri_as_default_uri(children) click to toggle source
# File lib/rss/maker/base.rb, line 331
def set_xhtml_uri_as_default_uri(children)
  children.collect do |child|
    if child.is_a?(RSS::XML::Element) and
        child.prefix.nil? and child.uri.nil?
      RSS::XML::Element.new(child.name, nil, ::RSS::Atom::XHTML_URI,
                            child.attributes.dup,
                            set_xhtml_uri_as_default_uri(child.children))
    else
      child
    end
  end
end