class RSS::Atom::Feed::Entry::Content
包含或链接到Entry
的内容。它具有以下属性
-
type
-
src
属性
xml[W]
以XML
格式返回元素内容。
公共类方法
xml_getter() 点击切换源代码
# File rss-0.3.1/lib/rss/atom.rb, line 620 def xml_getter "xml" end
xml_setter() 点击切换源代码
# File rss-0.3.1/lib/rss/atom.rb, line 616 def xml_setter "xml=" end
公共实例方法
atom_validate(ignore_unknown_element, tags, uri) 点击切换源代码
如果元素的格式不正确,则引发MissingAttributeError
、NotAvailableValueError
、MissingTagError
或NotExpectedTagError
。
# File rss-0.3.1/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
have_xml_content?() 点击切换源代码
如果元素具有内联的XML
内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 639 def have_xml_content? inline_xhtml? or inline_other_xml? end
inline_html?() 点击切换源代码
如果元素包含具有 HTML 媒体类型的内联内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 694 def inline_html? return false if out_of_line? @type == "html" or mime_split == ["text", "html"] end
inline_other?() 点击切换源代码
如果元素包含具有 MIME 媒体类型的内联内容,则返回 true。
# File rss-0.3.1/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
inline_other_base64?() 点击切换源代码
如果元素包含以 base64 编码的内联内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 743 def inline_other_base64? inline_other? and !inline_other_text? and !inline_other_xml? end
inline_other_text?() 点击切换源代码
如果元素包含具有文本媒体类型的内联内容,则返回 true。
# File rss-0.3.1/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
inline_other_xml?() 点击切换源代码
如果元素包含具有XML
媒体类型的内联内容,则返回 true。
# File rss-0.3.1/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
inline_text?() 点击切换源代码
如果元素包含具有文本或 HTML 媒体类型或根本没有媒体类型的内联内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 688 def inline_text? !out_of_line? and [nil, "text", "html"].include?(@type) end
inline_xhtml?() 点击切换源代码
如果元素包含具有 XHTML 媒体类型的内联内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 701 def inline_xhtml? !out_of_line? and @type == "xhtml" end
mime_split() 点击切换源代码
将 type 属性拆分为一个数组,例如 [“text”, “xml”]
# File rss-0.3.1/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
need_base64_encode?() 点击切换源代码
如果内容需要以 base64 编码,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 763 def need_base64_encode? inline_other_base64? end
out_of_line?() 点击切换源代码
如果元素包含链接内容,则返回 true。
# File rss-0.3.1/lib/rss/atom.rb, line 748 def out_of_line? not @src.nil? end
xhtml() 点击切换源代码
以 XHTML 格式返回元素内容。
# File rss-0.3.1/lib/rss/atom.rb, line 659 def xhtml if inline_xhtml? xml else nil end end
xml() 点击切换源代码
以XML
格式返回或构建元素内容。
# File rss-0.3.1/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
私有实例方法
empty_content?() 点击切换源代码
调用超类方法
RSS::Element#empty_content?
# File rss-0.3.1/lib/rss/atom.rb, line 768 def empty_content? out_of_line? or super end