Contains or links to the content of the Entry
. It has the following attributes:
-
type
-
src
Reference: validator.w3.org/feed/docs/rfc4287.html#element.content
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 620
def xml_getter
"xml"
end
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 616
def xml_setter
"xml="
end
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 670
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
Raises a MissingAttributeError
, NotAvailableValueError
, MissingTagError
or NotExpectedTagError
if the element is not properly formatted.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 768
def empty_content?
out_of_line? or super
end
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 639
def have_xml_content?
inline_xhtml? or inline_other_xml?
end
Returns true if the element has inline XML
content.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 694
def inline_html?
return false if out_of_line?
@type == "html" or mime_split == ["text", "html"]
end
Returns true if the element contains inline content that has a HTML media type.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 707
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
Returns true if the element contains inline content that has a MIME media type.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 743
def inline_other_base64?
inline_other? and !inline_other_text? and !inline_other_xml?
end
Returns true if the element contains inline content encoded in base64.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 716
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
Returns true if the element contains inline content that has a text media type.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 727
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
Returns true if the element contains inline content that has a XML
media type.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 688
def inline_text?
!out_of_line? and [nil, "text", "html"].include?(@type)
end
Returns true if the element contains inline content that has a text or HTML media type, or no media type at all.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 701
def inline_xhtml?
!out_of_line? and @type == "xhtml"
end
Returns true if the element contains inline content that has a XHTML media type.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 753
def mime_split
media_type = subtype = nil
if /\A\s*([a-z]+)\/([a-z\+]+)\s*(?:;.*)?\z/i =~ @type.to_s
media_type = $1.downcase
subtype = $2.downcase
end
[media_type, subtype]
end
Splits the type attribute into an array, e.g. [“text”, “xml”]
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 763
def need_base64_encode?
inline_other_base64?
end
Returns true if the content needs to be encoded in base64.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 748
def out_of_line?
not @src.nil?
end
Returns true if the element contains linked content.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 659
def xhtml
if inline_xhtml?
xml
else
nil
end
end
Returns the element content in XHTML.
# File tmp/rubies/ruby-2.7.6/lib/rss/atom.rb, line 644
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
Returns or builds the element content in XML
.