PHP 8.2.31
Preview: 2.0.rb Size: 3.40 KB
//proc/thread-self/root/opt/alt/ruby21/lib64/ruby/2.1.0/rss/2.0.rb

require "rss/0.9"

module RSS

  ##
  # = RSS 2.0 support
  #
  # RSS has three different versions. This module contains support for version
  # 2.0[http://www.rssboard.org/rss-specification]
  #
  # == Producing RSS 2.0
  #
  # Producing our own RSS feeds is easy as well. Let's make a very basic feed:
  #
  #  require "rss"
  #
  #  rss = RSS::Maker.make("2.0") do |maker|
  #    maker.channel.language = "en"
  #    maker.channel.author = "matz"
  #    maker.channel.updated = Time.now.to_s
  #    maker.channel.link = "http://www.ruby-lang.org/en/feeds/news.rss"
  #    maker.channel.title = "Example Feed"
  #    maker.channel.description = "A longer description of my feed."
  #    maker.items.new_item do |item|
  #      item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
  #      item.title = "Ruby 1.9.2-p136 is released"
  #      item.updated = Time.now.to_s
  #    end
  #  end
  #
  #  puts rss
  #
  # As you can see, this is a very Builder-like DSL. This code will spit out an
  # RSS 2.0 feed with one item. If we needed a second item, we'd make another
  # block with maker.items.new_item and build a second one.
  class Rss

    class Channel

      [
        ["generator"],
        ["ttl", :integer],
      ].each do |name, type|
        install_text_element(name, "", "?", name, type)
      end

      [
        %w(category categories),
      ].each do |name, plural_name|
        install_have_children_element(name, "", "*", name, plural_name)
      end

      [
        ["image", "?"],
        ["language", "?"],
      ].each do |name, occurs|
        install_model(name, "", occurs)
      end

      Category = Item::Category

      class Item

        [
          ["comments", "?"],
          ["author", "?"],
        ].each do |name, occurs|
          install_text_element(name, "", occurs)
        end

        [
          ["pubDate", '?'],
        ].each do |name, occurs|
          install_date_element(name, "", occurs, name, 'rfc822')
        end
        alias date pubDate
        alias date= pubDate=

        [
          ["guid", '?'],
        ].each do |name, occurs|
          install_have_child_element(name, "", occurs)
        end

        private
        alias _setup_maker_element setup_maker_element
        def setup_maker_element(item)
          _setup_maker_element(item)
          @guid.setup_maker(item) if @guid
        end

        class Guid < Element

          include RSS09

          [
            ["isPermaLink", "", false, :boolean]
          ].each do |name, uri, required, type|
            install_get_attribute(name, uri, required, type)
          end

          content_setup

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.isPermaLink = args[0]
              self.content = args[1]
            end
          end

          alias_method :_PermaLink?, :PermaLink?
          private :_PermaLink?
          def PermaLink?
            perma = _PermaLink?
            perma or perma.nil?
          end

          private
          def maker_target(item)
            item.guid
          end

          def setup_maker_attributes(guid)
            guid.isPermaLink = isPermaLink
            guid.content = content
          end
        end

      end

    end

  end

  RSS09::ELEMENTS.each do |name|
    BaseListener.install_get_text_element("", name, name)
  end

end

Directory Contents

Dirs: 3 × Files: 22

Name Size Perms Modified Actions
content DIR
- drwxr-xr-x 2024-03-03 22:43:05
Edit Download
- drwxr-xr-x 2024-03-03 22:43:05
Edit Download
maker DIR
- drwxr-xr-x 2024-03-03 22:43:05
Edit Download
10.58 KB lrw-r--r-- 2013-08-05 16:29:28
Edit Download
9.61 KB lrw-r--r-- 2013-08-06 13:36:31
Edit Download
3.40 KB lrw-r--r-- 2013-08-05 16:25:04
Edit Download
22.41 KB lrw-r--r-- 2013-08-05 16:25:04
Edit Download
859 B lrw-r--r-- 2013-11-09 05:56:09
Edit Download
3.87 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download
4.27 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
4.76 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
10.04 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
1.75 KB lrw-r--r-- 2013-04-26 12:21:45
Edit Download
15.58 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
964 B lrw-r--r-- 2013-08-09 14:50:11
Edit Download
35.15 KB lrw-r--r-- 2015-09-29 08:34:18
Edit Download
1.30 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
1.84 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
3.16 KB lrw-r--r-- 2013-11-09 05:56:09
Edit Download
6.69 KB lrw-r--r-- 2013-08-09 20:46:48
Edit Download
5.08 KB lrw-r--r-- 2013-08-06 22:46:46
Edit Download
2.13 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download
1.47 KB lrw-r--r-- 2007-11-16 01:30:29
Edit Download
1.62 KB lrw-r--r-- 2013-08-19 17:02:40
Edit Download
2.10 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).