# File rss/atom.rb, line 575
def atom_validate(ignore_unknown_element, tags, uri)
if out_of_line?
raise MissingAttributeError.new(tag_name, "type") if @type.nil?
unless (content.nil? or content.empty?)
raise NotAvailableValueError.new(tag_name, content)
end
elsif inline_xhtml?
if @xml.nil?
raise MissingTagError.new("div", tag_name)
end
unless @xml.name == "div" and @xml.uri == XHTML_URI
raise NotExpectedTagError.new(@xml.name, @xml.uri, tag_name)
end
end
end
# File rss/atom.rb, line 549
def have_xml_content?
inline_xhtml? or inline_other_xml?
end
# File rss/atom.rb, line 595
def inline_html?
return false if out_of_line?
@type == "html" or mime_split == ["text", "html"]
end
# File rss/atom.rb, line 604
def inline_other?
return false if out_of_line?
media_type, subtype = mime_split
return false if media_type.nil? or subtype.nil?
true
end
# File rss/atom.rb, line 634
def inline_other_base64?
inline_other? and !inline_other_text? and !inline_other_xml?
end
# File rss/atom.rb, line 611
def inline_other_text?
return false unless inline_other?
return false if inline_other_xml?
media_type, = mime_split
return true if "text" == media_type.downcase
false
end
# File rss/atom.rb, line 620
def inline_other_xml?
return false unless inline_other?
media_type, subtype = mime_split
normalized_mime_type = "#{media_type}/#{subtype}".downcase
if /(?:\+xml|^xml)$/ =~ subtype or
%w(text/xml-external-parsed-entity
application/xml-external-parsed-entity
application/xml-dtd).find {|x| x == normalized_mime_type}
return true
end
false
end
# File rss/atom.rb, line 591
def inline_text?
!out_of_line? and [nil, "text", "html"].include?(@type)
end
# File rss/atom.rb, line 600
def inline_xhtml?
!out_of_line? and @type == "xhtml"
end
# File rss/atom.rb, line 642
def mime_split
media_type = subtype = nil
if /\A\s*([a-z]+)\/([a-z\+]+)\s*(?:;.*)?\z/ =~ @type.to_s
media_type = $1.downcase
subtype = $2.downcase
end
[media_type, subtype]
end
# File rss/atom.rb, line 651
def need_base64_encode?
inline_other_base64?
end
# File rss/atom.rb, line 638
def out_of_line?
not @src.nil?
end
# File rss/atom.rb, line 567
def xhtml
if inline_xhtml?
xml
else
nil
end
end
# File rss/atom.rb, line 553
def xml
return @xml unless inline_xhtml?
return @xml if @xml.nil?
if @xml.is_a?(XML::Element) and
[@xml.name, @xml.uri] == ["div", XHTML_URI]
return @xml
end
children = @xml
children = [children] unless children.is_a?(Array)
XML::Element.new("div", nil, XHTML_URI,
{"xmlns" => XHTML_URI}, children)
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.