# class RSS::Atom::Feed

Defines the top-level element of an `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

### Public Class Methods

new(version=nil, encoding=nil, standalone=nil) click to toggle source

Creates a new `Atom` feed

Calls superclass method `RSS::RootElementMixin::new`

    # 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

### Public Instance Methods

have_author?() click to toggle source

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

    # 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

### Private Instance Methods

atom_validate(ignore_unknown_element, tags, uri) click to toggle source

    # 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

have_required_elements?() click to toggle source
Calls superclass method `RSS::Element#have_required_elements?`

    # File lib/rss/atom.rb, line 336
    def have_required_elements?
      super and have_author?
    end

maker_target(maker) click to toggle source

    # File lib/rss/atom.rb, line 340
    def maker_target(maker)
      maker.channel
    end

setup_maker_element(channel) click to toggle source
Calls superclass method `RSS::SetupMaker#setup_maker_element`

    # 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) click to toggle source
Calls superclass method `RSS::SetupMaker#setup_maker_elements`

    # 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