123456789_123456789_123456789_123456789_123456789_

Class: RSS::Atom::Feed

Relationships & Source Files
Namespace Children
Classes:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: RSS::Element
Defined in: lib/rss/atom.rb,
lib/rss/dublincore/atom.rb

Overview

Defines the top-level element of an ::RSS::Atom Feed Document. It consists of a number of children Entry elements, and has the following attributes:

  • author

  • categories

  • category

  • content

  • contributor

  • entries (aliased as items)

  • entry

  • generator

  • icon

  • id

  • link

  • logo

  • rights

  • subtitle

  • title

  • updated

Reference: validator.w3.org/feed/docs/rfc4287.html#element.feed

Constant Summary

::RSS::Element - Inherited

GET_ATTRIBUTES, HAVE_CHILDREN_ELEMENTS, INDENT, MODELS, MUST_CALL_VALIDATORS, NEED_INITIALIZE_VARIABLES, PLURAL_FORMS, TO_ELEMENT_METHODS

CommonModel - Included

ELEMENTS, NSPOOL

::RSS::DublinCoreModel - Included

DATE_ELEMENTS, ELEMENTS, ELEMENT_NAME_INFOS, TEXT_ELEMENTS

Class Attribute Summary

Class Method Summary

::RSS::Element - Inherited

::RSS::Utils::InheritedReader - Extended

::RSS::BaseModel - Extended

::RSS::Utils - Included

element_initialize_arguments?

This method is used inside of several different objects to determine if special behavior is needed in the constructor.

get_file_and_line_from_caller

Returns an array of two elements: the filename where the calling method is located, and the line number where it is defined.

new_with_value_if_need

If value is an instance of class klass, return it, else create a new instance of klass with value value.

to_class_name

Given a name in a name_with_underscores or a name-with-dashes format, returns the CamelCase version of name.

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(version = nil, encoding = nil, standalone = nil) ⇒ Feed

Creates a new ::RSS::Atom feed

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 313

def initialize(version=nil, encoding=nil, standalone=nil)
  super("1.0", version, encoding, standalone)
  @feed_type = "atom"
  @feed_subtype = "feed"
end

Instance Attribute Details

#have_author?Boolean (readonly)

Returns true if there are any authors for the feed or any of the Feed::Entry child elements have an author

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 323

def have_author?
  authors.any? {|author| !author.to_s.empty?} or
    entries.any? {|entry| entry.have_author?(false)}
end

#have_required_elements?Boolean (readonly, private)

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 336

def have_required_elements?
  super and have_author?
end

Instance Method Details

#atom_validate(ignore_unknown_element, tags, uri) (private)

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 329

def atom_validate(ignore_unknown_element, tags, uri)
  unless have_author?
    raise MissingTagError.new("author", tag_name)
  end
  validate_duplicate_links(links)
end

#items

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 319

alias_method :items, :entries

#maker_target(maker) (private)

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 340

def maker_target(maker)
  maker.channel
end

#setup_maker_element(channel) (private)

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 344

def setup_maker_element(channel)
  prev_dc_dates = channel.dc_dates.to_a.dup
  super
  channel.about = id.content if id
  channel.dc_dates.replace(prev_dc_dates)
end

#setup_maker_elements(channel) (private)

[ GitHub ]

  
# File 'lib/rss/atom.rb', line 351

def setup_maker_elements(channel)
  super
  items = channel.maker.items
  entries.each do |entry|
    entry.setup_maker(items)
  end
end