rss 0.2.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0661103c506f9158deefa370289f1f197422d06b500b92319e63d953d8243842
4
- data.tar.gz: f855b9669a566ac469b85820a5bbe2ff6d60be14e72040096d997057c653e596
3
+ metadata.gz: 58f47515ab88a55b8a9167dba145b023e87ef01de35cbe4fa6e2f0872689325a
4
+ data.tar.gz: a7f2ecc1d5c444d90d62ea7ccdf249c5553cca01e0741c1a3e481d71fbd1afd7
5
5
  SHA512:
6
- metadata.gz: cd38d5deb4396141f6e8a7e384cea8c3af86d7a54c42dc1e8f20d8447129c2e1f12a5fcb169d836353687ab16b6838999618f760b09f8d46246b17442977889e
7
- data.tar.gz: 4cfaf4d6c6794344edee289fe73a0cc810e8a9ffe95c47f845f47a883c14dcb7ae64cdf6d4ce0a3e89bd1aa96ba8440958a4cb8294a78c648886d3e91e41a857
6
+ metadata.gz: f8ae8d5e4ec7ab53fda8fc389b70c36542e3e964fc341e80379c1aa9128bad3cba1d31fb45bb68a8cbf5b40e81204780b7b57124b7fd431540b3bc9989ef133a
7
+ data.tar.gz: 7c63fda45b9f9c8002b6c7273de075ac01ec086e2e7596dc1f3d9521910dae7259248c52162e21d57f4f07cd0a20779d8a781448a2260a3bbe4e8ffc5c07283d
data/NEWS.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # News
2
2
 
3
+ ## 0.3.0 - 2023-08-12
4
+
5
+ ### Improvements
6
+
7
+ * itunes: Added support for `<itunes:type>`.
8
+
9
+ GH-16
10
+
11
+ Patch by Luis Alfredo Lorenzo.
12
+
13
+ * itunes: Added support for `<itunes:episode>` and `<itunes:season>`.
14
+
15
+ GH-31
16
+
17
+ Patch by Daniel-Ernest Luff.
18
+
19
+ * itunes: Added support for `<itunes:title>`.
20
+
21
+ GH-44
22
+
23
+ Patch by Ryan Brunner.
24
+
25
+ * itunes: Added support for `<itunes:episodeType>`.
26
+
27
+ GH-45
28
+
29
+ Reported by Tim Uckun.
30
+
31
+ ### Thanks
32
+
33
+ * Luis Alfredo Lorenzo
34
+
35
+ * Daniel-Ernest Luff
36
+
37
+ * Ryan Brunner
38
+
39
+ * Tim Uckun
40
+
41
+ ## 0.2.9 - 2020-02-19
42
+
43
+ ### Improvements
44
+
45
+ * Removed needless taint check with Ruby 2.7.
46
+ [GitHub#7][Patch by Jeremy Evans]
47
+
48
+ * Added support for `itunes:image` in `item` element.
49
+ [GitHub#11][Patch by Ian McKenzie]
50
+
51
+ ### Thanks
52
+
53
+ * Jeremy Evans
54
+
55
+ * Ian McKenzie
56
+
3
57
  ## 0.2.8 - 2019-01-24
4
58
 
5
59
  ### Improvements
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # RSS
2
2
 
3
- Really Simple Syndication (RSS) is a family of formats that describe 'feeds,' specially constructed XML documents that allow an interested person to subscribe and receive updates from a particular web service. This portion of the standard library provides tooling to read and create these feeds.
3
+ Really Simple Syndication (RSS) is a family of formats that describe _feeds_, specially constructed XML documents that allow an interested person to subscribe and receive updates from a particular web service. This portion of the standard library provides tooling to read and create these feeds.
4
4
 
5
5
  The standard library supports RSS 0.91, 1.0, 2.0, and Atom, a related format. Here are some links to the standards documents for these formats:
6
6
 
7
7
  * RSS
8
- * 0.9.1[http://www.rssboard.org/rss-0-9-1-netscape]
9
- * 1.0[http://web.resource.org/rss/1.0/]
10
- * 2.0[http://www.rssboard.org/rss-specification]
11
- * Atom[http://tools.ietf.org/html/rfc4287]
8
+ * [0.9.1](http://www.rssboard.org/rss-0-9-1-netscape)
9
+ * [1.0](http://web.resource.org/rss/1.0/)
10
+ * [2.0](http://www.rssboard.org/rss-specification)
11
+ * [Atom](https://tools.ietf.org/html/rfc4287)
12
12
 
13
13
  ## Installation
14
14
 
@@ -32,12 +32,12 @@ Or install it yourself as:
32
32
 
33
33
  If you'd like to read someone's RSS feed with your Ruby code, you've come to the right place. It's really easy to do this, but we'll need the help of open-uri:
34
34
 
35
- ```
35
+ ```ruby
36
36
  require 'rss'
37
37
  require 'open-uri'
38
38
 
39
- url = 'http://www.ruby-lang.org/en/feeds/news.rss'
40
- open(url) do |rss|
39
+ url = 'https://www.ruby-lang.org/en/feeds/news.rss'
40
+ URI.open(url) do |rss|
41
41
  feed = RSS::Parser.parse(rss)
42
42
  puts "Title: #{feed.channel.title}"
43
43
  feed.items.each do |item|
@@ -52,17 +52,17 @@ As you can see, the workhorse is RSS::Parser#parse, which takes the source of th
52
52
 
53
53
  Producing our own RSS feeds is easy as well. Let's make a very basic feed:
54
54
 
55
- ```
55
+ ```ruby
56
56
  require "rss"
57
57
 
58
58
  rss = RSS::Maker.make("atom") do |maker|
59
59
  maker.channel.author = "matz"
60
60
  maker.channel.updated = Time.now.to_s
61
- maker.channel.about = "http://www.ruby-lang.org/en/feeds/news.rss"
61
+ maker.channel.about = "https://www.ruby-lang.org/en/feeds/news.rss"
62
62
  maker.channel.title = "Example Feed"
63
63
 
64
64
  maker.items.new_item do |item|
65
- item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
65
+ item.link = "https://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
66
66
  item.title = "Ruby 1.9.2-p136 is released"
67
67
  item.updated = Time.now.to_s
68
68
  end
data/lib/rss/itunes.rb CHANGED
@@ -80,6 +80,8 @@ module RSS
80
80
  ["image", :attribute, "href"],
81
81
  ["owner", :element],
82
82
  ["new-feed-url"],
83
+ ["type", :itunes_episode],
84
+ ["title"],
83
85
  ] + ITunesBaseModel::ELEMENT_INFOS
84
86
 
85
87
  class ITunesCategory < Element
@@ -258,7 +260,62 @@ module RSS
258
260
  end
259
261
 
260
262
  ELEMENT_INFOS = ITunesBaseModel::ELEMENT_INFOS +
261
- [["duration", :element, "content"]]
263
+ [
264
+ ["duration", :element, "content"],
265
+ ["image", :attribute, "href"],
266
+ ["season", :positive_integer],
267
+ ["episode", :positive_integer],
268
+ ["episodeType", :itunes_episode_type],
269
+ ["title"],
270
+ ]
271
+
272
+ class ITunesImage < Element
273
+ include RSS09
274
+
275
+ @tag_name = "image"
276
+
277
+ class << self
278
+ def required_prefix
279
+ ITUNES_PREFIX
280
+ end
281
+
282
+ def required_uri
283
+ ITUNES_URI
284
+ end
285
+ end
286
+
287
+ [
288
+ ["href", "", true]
289
+ ].each do |name, uri, required|
290
+ install_get_attribute(name, uri, required)
291
+ end
292
+
293
+ def initialize(*args)
294
+ if Utils.element_initialize_arguments?(args)
295
+ super
296
+ else
297
+ super()
298
+ self.href = args[0]
299
+ end
300
+ end
301
+
302
+ def full_name
303
+ tag_name_with_prefix(ITUNES_PREFIX)
304
+ end
305
+
306
+ private
307
+ def maker_target(target)
308
+ if href
309
+ target.itunes_image {|image| image}
310
+ else
311
+ nil
312
+ end
313
+ end
314
+
315
+ def setup_maker_attributes(image)
316
+ image.href = href
317
+ end
318
+ end
262
319
 
263
320
  class ITunesDuration < Element
264
321
  include RSS09
@@ -15,6 +15,8 @@ module RSS
15
15
  def_yes_other_accessor(klass, full_name)
16
16
  when :explicit_clean_other
17
17
  def_explicit_clean_other_accessor(klass, full_name)
18
+ when :positive_integer, :itunes_episode, :itunes_episode_type
19
+ klass.def_other_element(full_name)
18
20
  when :csv
19
21
  def_csv_accessor(klass, full_name)
20
22
  when :element, :attribute
@@ -171,6 +173,18 @@ module RSS
171
173
  end
172
174
  end
173
175
 
176
+ class ITunesImageBase < Base
177
+ add_need_initialize_variable("href")
178
+ attr_accessor("href")
179
+
180
+ def to_feed(feed, current)
181
+ if @href and current.respond_to?(:itunes_image)
182
+ current.itunes_image ||= current.class::ITunesImage.new
183
+ current.itunes_image.href = @href
184
+ end
185
+ end
186
+ end
187
+
174
188
  class ITunesDurationBase < Base
175
189
  attr_reader :content
176
190
  add_need_initialize_variable("content")
@@ -237,6 +251,7 @@ module RSS
237
251
  class ItemBase
238
252
  include Maker::ITunesItemModel
239
253
  class ITunesDuration < ITunesDurationBase; end
254
+ class ITunesImage < ITunesImageBase; end
240
255
  end
241
256
  end
242
257
  end
data/lib/rss/parser.rb CHANGED
@@ -120,7 +120,7 @@ module RSS
120
120
 
121
121
  if uri.respond_to?(:read)
122
122
  uri.read
123
- elsif !rss.tainted? and File.readable?(rss)
123
+ elsif (RUBY_VERSION >= '2.7' || !rss.tainted?) and File.readable?(rss)
124
124
  File.open(rss) {|f| f.read}
125
125
  else
126
126
  rss
data/lib/rss/rss.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  # frozen_string_literal: false
2
+
3
+ require "English"
4
+ require "cgi/util"
2
5
  require "time"
3
6
 
4
7
  class Time
@@ -61,8 +64,6 @@ class Time
61
64
  end
62
65
  end
63
66
 
64
-
65
- require "English"
66
67
  require_relative "utils"
67
68
  require_relative "converter"
68
69
  require_relative "xml-stylesheet"
@@ -260,7 +261,7 @@ EOC
260
261
  end
261
262
  if content
262
263
  rv = "\#{indent}<#{elem_name}>"
263
- value = html_escape(content)
264
+ value = CGI.escapeHTML(content.to_s)
264
265
  if need_convert
265
266
  rv << convert(value)
266
267
  else
@@ -291,7 +292,7 @@ EOC
291
292
  <<-EOC
292
293
  if @#{n}
293
294
  rv = "\#{indent}<#{elem_name}>"
294
- value = html_escape(@#{n}.#{type})
295
+ value = CGI.escapeHTML(@#{n}.#{type}.to_s)
295
296
  if need_convert
296
297
  rv << convert(value)
297
298
  else
@@ -375,7 +376,7 @@ EOC
375
376
  module_eval(<<-EOC, __FILE__, __LINE__ + 1)
376
377
  attr_reader(:#{attr})
377
378
  def #{attr}?
378
- ExplicitCleanOther.parse(@#{attr})
379
+ Utils::ExplicitCleanOther.parse(@#{attr})
379
380
  end
380
381
  EOC
381
382
  end
@@ -541,7 +542,7 @@ EOC
541
542
  end
542
543
 
543
544
  def explicit_clean_other_writer(name, disp_name=name)
544
- module_eval(<<-EOC, __FILE__, __LINE__ + 1)
545
+ module_eval(<<-EOC, *get_file_and_line_from_caller(2))
545
546
  def #{name}=(value)
546
547
  value = (value ? "yes" : "no") if [true, false].include?(value)
547
548
  @#{name} = value
@@ -550,7 +551,7 @@ EOC
550
551
  end
551
552
 
552
553
  def yes_other_writer(name, disp_name=name)
553
- module_eval(<<-EOC, __FILE__, __LINE__ + 1)
554
+ module_eval(<<-EOC, *get_file_and_line_from_caller(2))
554
555
  def #{name}=(new_value)
555
556
  if [true, false].include?(new_value)
556
557
  new_value = new_value ? "yes" : "no"
@@ -561,7 +562,7 @@ EOC
561
562
  end
562
563
 
563
564
  def csv_writer(name, disp_name=name)
564
- module_eval(<<-EOC, __FILE__, __LINE__ + 1)
565
+ module_eval(<<-EOC, *get_file_and_line_from_caller(2))
565
566
  def #{name}=(new_value)
566
567
  @#{name} = Utils::CSV.parse(new_value)
567
568
  end
@@ -569,13 +570,37 @@ EOC
569
570
  end
570
571
 
571
572
  def csv_integer_writer(name, disp_name=name)
572
- module_eval(<<-EOC, __FILE__, __LINE__ + 1)
573
+ module_eval(<<-EOC, *get_file_and_line_from_caller(2))
573
574
  def #{name}=(new_value)
574
575
  @#{name} = Utils::CSV.parse(new_value) {|v| Integer(v)}
575
576
  end
576
577
  EOC
577
578
  end
578
579
 
580
+ def itunes_episode_writer(name, disp_name=name)
581
+ module_eval(<<-EOC, *get_file_and_line_from_caller(2))
582
+ def #{name}=(new_value)
583
+ if @do_validate and
584
+ !["episodic", "serial", nil].include?(new_value)
585
+ raise NotAvailableValueError.new('#{disp_name}', new_value)
586
+ end
587
+ @#{name} = new_value
588
+ end
589
+ EOC
590
+ end
591
+
592
+ def itunes_episode_type_writer(name, disp_name=name)
593
+ module_eval(<<-DEF, *get_file_and_line_from_caller(2))
594
+ def #{name}=(new_value)
595
+ if @do_validate and
596
+ !["Full", "Trailer", "Bonus", nil].include?(new_value)
597
+ raise NotAvailableValueError.new('#{disp_name}', new_value)
598
+ end
599
+ @#{name} = new_value
600
+ end
601
+ DEF
602
+ end
603
+
579
604
  def def_children_accessor(accessor_name, plural_name)
580
605
  module_eval(<<-EOC, *get_file_and_line_from_caller(2))
581
606
  def #{plural_name}
@@ -659,7 +684,6 @@ EOC
659
684
 
660
685
  class Element
661
686
  extend BaseModel
662
- include Utils
663
687
  extend Utils::InheritedReader
664
688
  include SetupMaker
665
689
 
@@ -736,7 +760,7 @@ EOC
736
760
  writer_type, reader_type = type
737
761
  def_corresponded_attr_writer name, writer_type, disp_name
738
762
  def_corresponded_attr_reader name, reader_type
739
- if type == :boolean and /^is/ =~ name
763
+ if type == :boolean and /\Ais/ =~ name
740
764
  alias_method "#{$POSTMATCH}?", name
741
765
  end
742
766
  self::GET_ATTRIBUTES << [name, uri, required, element_name]
@@ -763,9 +787,13 @@ EOC
763
787
  when :yes_other
764
788
  yes_other_writer name, disp_name
765
789
  when :csv
766
- csv_writer name
790
+ csv_writer name, disp_name
767
791
  when :csv_integer
768
- csv_integer_writer name
792
+ csv_integer_writer name, disp_name
793
+ when :itunes_episode
794
+ itunes_episode_writer name, disp_name
795
+ when :itunes_episode_type
796
+ itunes_episode_type_writer name, disp_name
769
797
  else
770
798
  attr_writer name
771
799
  end
@@ -1023,7 +1051,7 @@ EOC
1023
1051
  start_tag = ["#{indent}<#{full_name}"]
1024
1052
  unless attrs.empty?
1025
1053
  start_tag << attrs.collect do |key, value|
1026
- %Q[#{h key}="#{h value}"]
1054
+ %Q[#{CGI.escapeHTML(key.to_s)}="#{CGI.escapeHTML(value.to_s)}"]
1027
1055
  end.join("\n#{next_indent}")
1028
1056
  end
1029
1057
  start_tag.join(" ")
@@ -1231,7 +1259,7 @@ EOC
1231
1259
  else
1232
1260
  _content = content
1233
1261
  _content = [_content].pack("m0") if need_base64_encode?
1234
- h(_content)
1262
+ CGI.escapeHTML(_content.to_s)
1235
1263
  end
1236
1264
  end
1237
1265
  end
data/lib/rss/utils.rb CHANGED
@@ -87,24 +87,6 @@ module RSS
87
87
  [file, line]
88
88
  end
89
89
 
90
- # Takes a string +s+ with some HTML in it, and escapes '&', '"', '<' and '>', by
91
- # replacing them with the appropriate entities.
92
- #
93
- # This method is also aliased to h, for convenience.
94
- #
95
- # Examples:
96
- #
97
- # require 'rss/utils'
98
- #
99
- # RSS::Utils.html_escape("Dungeons & Dragons")
100
- # # => "Dungeons &amp; Dragons"
101
- # RSS::Utils.h(">_>")
102
- # # => "&gt;_&gt;"
103
- def html_escape(s)
104
- s.to_s.gsub(/&/, "&amp;").gsub(/\"/, "&quot;").gsub(/>/, "&gt;").gsub(/</, "&lt;")
105
- end
106
- alias h html_escape
107
-
108
90
  # If +value+ is an instance of class +klass+, return it, else
109
91
  # create a new instance of +klass+ with value +value+.
110
92
  def new_with_value_if_need(klass, value)
data/lib/rss/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module RSS
2
2
  # The current version of RSS
3
- VERSION = "0.2.8"
3
+ VERSION = "0.3.0"
4
4
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: false
2
- require_relative "utils"
2
+
3
+ require "cgi/util"
3
4
 
4
5
  module RSS
5
6
 
@@ -24,8 +25,6 @@ module RSS
24
25
 
25
26
  class XMLStyleSheet
26
27
 
27
- include Utils
28
-
29
28
  ATTRIBUTES = %w(href type title media charset alternate)
30
29
 
31
30
  GUESS_TABLE = {
@@ -59,7 +58,7 @@ module RSS
59
58
  rv << %Q[<?xml-stylesheet]
60
59
  ATTRIBUTES.each do |name|
61
60
  if __send__(name)
62
- rv << %Q[ #{name}="#{h __send__(name)}"]
61
+ rv << %Q[ #{name}="#{CGI.escapeHTML(__send__(name).to_s)}"]
63
62
  end
64
63
  end
65
64
  rv << %Q[?>]
data/lib/rss/xml.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: false
2
- require_relative "utils"
2
+
3
+ require "cgi/util"
3
4
 
4
5
  module RSS
5
6
  module XML
@@ -46,7 +47,7 @@ module RSS
46
47
  def to_s
47
48
  rv = "<#{full_name}"
48
49
  attributes.each do |key, value|
49
- rv << " #{Utils.html_escape(key)}=\"#{Utils.html_escape(value)}\""
50
+ rv << " #{CGI.escapeHTML(key.to_s)}=\"#{CGI.escapeHTML(value.to_s)}\""
50
51
  end
51
52
  if children.empty?
52
53
  rv << "/>"
data/lib/rss.rb CHANGED
@@ -79,16 +79,16 @@ end
79
79
 
80
80
  require "rss/version"
81
81
 
82
- require 'rss/1.0'
83
- require 'rss/2.0'
84
- require 'rss/atom'
85
- require 'rss/content'
86
- require 'rss/dublincore'
87
- require 'rss/image'
88
- require 'rss/itunes'
89
- require 'rss/slash'
90
- require 'rss/syndication'
91
- require 'rss/taxonomy'
92
- require 'rss/trackback'
82
+ require "rss/1.0"
83
+ require "rss/2.0"
84
+ require "rss/atom"
85
+ require "rss/content"
86
+ require "rss/dublincore"
87
+ require "rss/image"
88
+ require "rss/itunes"
89
+ require "rss/slash"
90
+ require "rss/syndication"
91
+ require "rss/taxonomy"
92
+ require "rss/trackback"
93
93
 
94
94
  require "rss/maker"
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-25 00:00:00.000000000 Z
11
+ date: 2023-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rexml
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -59,13 +73,9 @@ executables: []
59
73
  extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
- - ".gitignore"
63
- - ".travis.yml"
64
- - Gemfile
65
76
  - LICENSE.txt
66
77
  - NEWS.md
67
78
  - README.md
68
- - Rakefile
69
79
  - lib/rss.rb
70
80
  - lib/rss/0.9.rb
71
81
  - lib/rss/1.0.rb
@@ -110,12 +120,11 @@ files:
110
120
  - lib/rss/xml.rb
111
121
  - lib/rss/xmlparser.rb
112
122
  - lib/rss/xmlscanner.rb
113
- - rss.gemspec
114
123
  homepage: https://github.com/ruby/rss
115
124
  licenses:
116
125
  - BSD-2-Clause
117
126
  metadata: {}
118
- post_install_message:
127
+ post_install_message:
119
128
  rdoc_options: []
120
129
  require_paths:
121
130
  - lib
@@ -130,9 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
139
  - !ruby/object:Gem::Version
131
140
  version: '0'
132
141
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.7.6
135
- signing_key:
142
+ rubygems_version: 3.5.0.dev
143
+ signing_key:
136
144
  specification_version: 4
137
145
  summary: Family of libraries that support various formats of XML "feeds".
138
146
  test_files: []
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
- Gemfile.lock
data/.travis.yml DELETED
@@ -1,26 +0,0 @@
1
- notifications:
2
- webhooks:
3
- - https://webhook.commit-email.info/
4
-
5
- language: ruby
6
- matrix:
7
- include:
8
- - name: "2.3"
9
- rvm: 2.3
10
- - name: "2.4"
11
- rvm: 2.4.5
12
- - name: "2.5"
13
- rvm: 2.5.3
14
- - name: "2.6"
15
- rvm: 2.6
16
- - name: "trunk"
17
- rvm: ruby-head
18
- - name: "gem"
19
- rvm: 2.6
20
- install:
21
- - rake install
22
- script:
23
- - mkdir -p tmp
24
- - cd tmp
25
- - cp -a ../test/ ./
26
- - ../run-test.rb
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in rss.gemspec
6
- gemspec
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
3
- desc "Run test"
4
- task :test do
5
- ruby("run-test.rb")
6
- end
7
-
8
- task :default => :test
data/rss.gemspec DELETED
@@ -1,80 +0,0 @@
1
- begin
2
- require_relative "lib/rss/version"
3
- rescue LoadError
4
- # for Ruby core repository
5
- require_relative "version"
6
- end
7
-
8
- Gem::Specification.new do |spec|
9
- spec.name = "rss"
10
- spec.version = RSS::VERSION
11
- spec.authors = ["Kouhei Sutou"]
12
- spec.email = ["kou@cozmixng.org"]
13
-
14
- spec.summary = %q{Family of libraries that support various formats of XML "feeds".}
15
- spec.description = %q{Family of libraries that support various formats of XML "feeds".}
16
- spec.homepage = "https://github.com/ruby/rss"
17
- spec.license = "BSD-2-Clause"
18
-
19
- spec.files = [
20
- ".gitignore",
21
- ".travis.yml",
22
- "Gemfile",
23
- "LICENSE.txt",
24
- "NEWS.md",
25
- "README.md",
26
- "Rakefile",
27
- "lib/rss.rb",
28
- "lib/rss/0.9.rb",
29
- "lib/rss/1.0.rb",
30
- "lib/rss/2.0.rb",
31
- "lib/rss/atom.rb",
32
- "lib/rss/content.rb",
33
- "lib/rss/content/1.0.rb",
34
- "lib/rss/content/2.0.rb",
35
- "lib/rss/converter.rb",
36
- "lib/rss/dublincore.rb",
37
- "lib/rss/dublincore/1.0.rb",
38
- "lib/rss/dublincore/2.0.rb",
39
- "lib/rss/dublincore/atom.rb",
40
- "lib/rss/image.rb",
41
- "lib/rss/itunes.rb",
42
- "lib/rss/maker.rb",
43
- "lib/rss/maker/0.9.rb",
44
- "lib/rss/maker/1.0.rb",
45
- "lib/rss/maker/2.0.rb",
46
- "lib/rss/maker/atom.rb",
47
- "lib/rss/maker/base.rb",
48
- "lib/rss/maker/content.rb",
49
- "lib/rss/maker/dublincore.rb",
50
- "lib/rss/maker/entry.rb",
51
- "lib/rss/maker/feed.rb",
52
- "lib/rss/maker/image.rb",
53
- "lib/rss/maker/itunes.rb",
54
- "lib/rss/maker/slash.rb",
55
- "lib/rss/maker/syndication.rb",
56
- "lib/rss/maker/taxonomy.rb",
57
- "lib/rss/maker/trackback.rb",
58
- "lib/rss/parser.rb",
59
- "lib/rss/rexmlparser.rb",
60
- "lib/rss/rss.rb",
61
- "lib/rss/slash.rb",
62
- "lib/rss/syndication.rb",
63
- "lib/rss/taxonomy.rb",
64
- "lib/rss/trackback.rb",
65
- "lib/rss/utils.rb",
66
- "lib/rss/version.rb",
67
- "lib/rss/xml-stylesheet.rb",
68
- "lib/rss/xml.rb",
69
- "lib/rss/xmlparser.rb",
70
- "lib/rss/xmlscanner.rb",
71
- "rss.gemspec",
72
- ]
73
- spec.bindir = "exe"
74
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
75
- spec.require_paths = ["lib"]
76
-
77
- spec.add_development_dependency "bundler"
78
- spec.add_development_dependency "rake"
79
- spec.add_development_dependency "test-unit"
80
- end