rubysl-rss 1.0.0 → 2.0.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.
@@ -8,11 +8,11 @@ module RSS
8
8
  RDF.install_ns(SY_PREFIX, SY_URI)
9
9
 
10
10
  module SyndicationModel
11
-
11
+
12
12
  extend BaseModel
13
-
13
+
14
14
  ELEMENTS = []
15
-
15
+
16
16
  def self.append_features(klass)
17
17
  super
18
18
 
@@ -24,7 +24,7 @@ module RSS
24
24
 
25
25
  module TaxonomyTopicsModel
26
26
  extend BaseModel
27
-
27
+
28
28
  def self.append_features(klass)
29
29
  super
30
30
 
@@ -37,21 +37,21 @@ module RSS
37
37
 
38
38
  class TaxonomyTopics < Element
39
39
  include RSS10
40
-
40
+
41
41
  Bag = ::RSS::RDF::Bag
42
42
 
43
43
  class << self
44
44
  def required_prefix
45
45
  TAXO_PREFIX
46
46
  end
47
-
47
+
48
48
  def required_uri
49
49
  TAXO_URI
50
50
  end
51
51
  end
52
52
 
53
53
  @tag_name = "topics"
54
-
54
+
55
55
  install_have_child_element("Bag", RDF::URI, nil)
56
56
  install_must_call_validator('rdf', RDF::URI)
57
57
 
@@ -84,10 +84,10 @@ module RSS
84
84
  end
85
85
  end
86
86
  end
87
-
87
+
88
88
  module TaxonomyTopicModel
89
89
  extend BaseModel
90
-
90
+
91
91
  def self.append_features(klass)
92
92
  super
93
93
  var_name = "#{TAXO_PREFIX}_topic"
@@ -99,12 +99,12 @@ module RSS
99
99
 
100
100
  include DublinCoreModel
101
101
  include TaxonomyTopicsModel
102
-
102
+
103
103
  class << self
104
104
  def required_prefix
105
105
  TAXO_PREFIX
106
106
  end
107
-
107
+
108
108
  def required_uri
109
109
  TAXO_URI
110
110
  end
@@ -115,7 +115,7 @@ module RSS
115
115
  install_get_attribute("about", ::RSS::RDF::URI, true, nil, nil,
116
116
  "#{RDF::PREFIX}:about")
117
117
  install_text_element("link", TAXO_URI, "?", "#{TAXO_PREFIX}_link")
118
-
118
+
119
119
  def initialize(*args)
120
120
  if Utils.element_initialize_arguments?(args)
121
121
  super
@@ -23,7 +23,7 @@ module RSS
23
23
  module BaseTrackBackModel
24
24
 
25
25
  ELEMENTS = %w(ping about)
26
-
26
+
27
27
  def append_features(klass)
28
28
  super
29
29
 
@@ -47,7 +47,7 @@ module RSS
47
47
  end
48
48
  EOC
49
49
  end
50
-
50
+
51
51
  [%w(about s)].each do |name, postfix|
52
52
  var_name = "#{TRACKBACK_PREFIX}_#{name}"
53
53
  klass_name = "TrackBack#{Utils.to_class_name(name)}"
@@ -105,7 +105,7 @@ module RSS
105
105
  def required_prefix
106
106
  TRACKBACK_PREFIX
107
107
  end
108
-
108
+
109
109
  def required_uri
110
110
  TRACKBACK_URI
111
111
  end
@@ -141,17 +141,17 @@ module RSS
141
141
  include RSS10
142
142
 
143
143
  class << self
144
-
144
+
145
145
  def required_prefix
146
146
  TRACKBACK_PREFIX
147
147
  end
148
-
148
+
149
149
  def required_uri
150
150
  TRACKBACK_URI
151
151
  end
152
152
 
153
153
  end
154
-
154
+
155
155
  @tag_name = "about"
156
156
 
157
157
  [
@@ -163,7 +163,7 @@ module RSS
163
163
 
164
164
  alias_method(:value, :resource)
165
165
  alias_method(:value=, :resource=)
166
-
166
+
167
167
  def initialize(*args)
168
168
  if Utils.element_initialize_arguments?(args)
169
169
  super
@@ -185,7 +185,7 @@ module RSS
185
185
  def setup_maker_attributes(about)
186
186
  about.resource = self.resource
187
187
  end
188
-
188
+
189
189
  end
190
190
  end
191
191
 
@@ -197,7 +197,7 @@ module RSS
197
197
  include RSS09
198
198
 
199
199
  @tag_name = "ping"
200
-
200
+
201
201
  content_setup
202
202
 
203
203
  class << self
@@ -205,13 +205,13 @@ module RSS
205
205
  def required_prefix
206
206
  TRACKBACK_PREFIX
207
207
  end
208
-
208
+
209
209
  def required_uri
210
210
  TRACKBACK_URI
211
211
  end
212
212
 
213
213
  end
214
-
214
+
215
215
  alias_method(:value, :content)
216
216
  alias_method(:value=, :content=)
217
217
 
@@ -223,26 +223,26 @@ module RSS
223
223
  self.content = args[0]
224
224
  end
225
225
  end
226
-
226
+
227
227
  def full_name
228
228
  tag_name_with_prefix(TRACKBACK_PREFIX)
229
229
  end
230
-
230
+
231
231
  end
232
232
 
233
233
  class TrackBackAbout < Element
234
234
  include RSS09
235
235
 
236
236
  @tag_name = "about"
237
-
237
+
238
238
  content_setup
239
239
 
240
240
  class << self
241
-
241
+
242
242
  def required_prefix
243
243
  TRACKBACK_PREFIX
244
244
  end
245
-
245
+
246
246
  def required_uri
247
247
  TRACKBACK_URI
248
248
  end
@@ -260,11 +260,11 @@ module RSS
260
260
  self.content = args[0]
261
261
  end
262
262
  end
263
-
263
+
264
264
  def full_name
265
265
  tag_name_with_prefix(TRACKBACK_PREFIX)
266
266
  end
267
-
267
+
268
268
  end
269
269
  end
270
270
 
@@ -8,7 +8,7 @@ module RSS
8
8
  "#{part[0, 1].upcase}#{part[1..-1]}"
9
9
  end.join("")
10
10
  end
11
-
11
+
12
12
  def get_file_and_line_from_caller(i=0)
13
13
  file, line, = caller[i].split(':')
14
14
  line = line.to_i
@@ -21,7 +21,7 @@ module RSS
21
21
  s.to_s.gsub(/&/, "&amp;").gsub(/\"/, "&quot;").gsub(/>/, "&gt;").gsub(/</, "&lt;")
22
22
  end
23
23
  alias h html_escape
24
-
24
+
25
25
  # If +value+ is an instance of class +klass+, return it, else
26
26
  # create a new instance of +klass+ with value +value+.
27
27
  def new_with_value_if_need(klass, value)
@@ -8,7 +8,7 @@ module RSS
8
8
  super
9
9
  @xml_stylesheets = []
10
10
  end
11
-
11
+
12
12
  private
13
13
  def xml_stylesheet_pi
14
14
  xsss = @xml_stylesheets.collect do |xss|
@@ -94,7 +94,7 @@ module RSS
94
94
  xss.__send__("#{attr}=", __send__(attr))
95
95
  end
96
96
  end
97
-
97
+
98
98
  private
99
99
  def guess_type(filename)
100
100
  /\.([^.]+)$/ =~ filename
@@ -26,9 +26,9 @@ module XML
26
26
  end
27
27
 
28
28
  module RSS
29
-
29
+
30
30
  class REXMLLikeXMLParser < ::XML::Parser
31
-
31
+
32
32
  include ::XML::Encoding_ja
33
33
 
34
34
  def listener=(listener)
@@ -38,7 +38,7 @@ module RSS
38
38
  def startElement(name, attrs)
39
39
  @listener.tag_start(name, attrs)
40
40
  end
41
-
41
+
42
42
  def endElement(name)
43
43
  @listener.tag_end(name)
44
44
  end
@@ -64,7 +64,7 @@ module RSS
64
64
  XMLParserListener
65
65
  end
66
66
  end
67
-
67
+
68
68
  private
69
69
  def _parse
70
70
  begin
@@ -75,13 +75,13 @@ module RSS
75
75
  raise NotWellFormedError.new(parser.line){e.message}
76
76
  end
77
77
  end
78
-
78
+
79
79
  end
80
-
80
+
81
81
  class XMLParserListener < BaseListener
82
82
 
83
83
  include ListenerMixin
84
-
84
+
85
85
  def xmldecl(version, encoding, standalone)
86
86
  super
87
87
  # Encoding is converted to UTF-8 when XMLParser parses XML.
@@ -2,15 +2,15 @@ require 'xmlscan/scanner'
2
2
  require 'stringio'
3
3
 
4
4
  module RSS
5
-
5
+
6
6
  class XMLScanParser < BaseParser
7
-
7
+
8
8
  class << self
9
9
  def listener
10
10
  XMLScanListener
11
11
  end
12
12
  end
13
-
13
+
14
14
  private
15
15
  def _parse
16
16
  begin
@@ -26,11 +26,11 @@ module RSS
26
26
  raise NotWellFormedError.new(lineno){e.message}
27
27
  end
28
28
  end
29
-
29
+
30
30
  end
31
31
 
32
32
  class XMLScanListener < BaseListener
33
-
33
+
34
34
  include XMLScan::Visitor
35
35
  include ListenerMixin
36
36
 
@@ -1,8 +1,80 @@
1
- # Copyright (c) 2003-2007 Kouhei Sutou. You can redistribute it and/or
2
- # modify it under the same terms as Ruby.
1
+ ##
2
+ # = RSS reading and writing
3
3
  #
4
- # Author:: Kouhei Sutou <kou@cozmixng.org>
5
- # Tutorial:: http://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser%3A%3ATutorial.en
4
+ # Really Simple Syndication (RSS) is a family of formats that describe 'feeds,'
5
+ # specially constructed XML documents that allow an interested person to
6
+ # subscribe and receive updates from a particular web service. This portion of
7
+ # the standard library provides tooling to read and create these feeds.
8
+ #
9
+ # The standard library supports RSS 0.91, 1.0, 2.0, and Atom, a related format.
10
+ # Here are some links to the standards documents for these formats:
11
+ #
12
+ # * RSS
13
+ # * 0.9.1[http://www.rssboard.org/rss-0-9-1-netscape]
14
+ # * 1.0[http://web.resource.org/rss/1.0/]
15
+ # * 2.0[http://www.rssboard.org/rss-specification]
16
+ # * Atom[http://tools.ietf.org/html/rfc4287]
17
+ #
18
+ # == Consuming RSS
19
+ #
20
+ # If you'd like to read someone's RSS feed with your Ruby code, you've come to
21
+ # the right place. It's really easy to do this, but we'll need the help of
22
+ # open-uri:
23
+ #
24
+ # require 'rss'
25
+ # require 'open-uri'
26
+ #
27
+ # url = 'http://www.ruby-lang.org/en/feeds/news.rss'
28
+ # open(url) do |rss|
29
+ # feed = RSS::Parser.parse(rss)
30
+ # puts "Title: #{feed.channel.title}"
31
+ # feed.items.each do |item|
32
+ # puts "Item: #{item.title}"
33
+ # end
34
+ # end
35
+ #
36
+ # As you can see, the workhorse is RSS::Parser#parse, which takes the source of
37
+ # the feed and a parameter that performs validation on the feed. We get back an
38
+ # object that has all of the data from our feed, accessible through methods.
39
+ # This example shows getting the title out of the channel element, and looping
40
+ # through the list of items.
41
+ #
42
+ # == Producing RSS
43
+ #
44
+ # Producing our own RSS feeds is easy as well. Let's make a very basic feed:
45
+ #
46
+ # require "rss"
47
+ #
48
+ # rss = RSS::Maker.make("atom") do |maker|
49
+ # maker.channel.author = "matz"
50
+ # maker.channel.updated = Time.now.to_s
51
+ # maker.channel.about = "http://www.ruby-lang.org/en/feeds/news.rss"
52
+ # maker.channel.title = "Example Feed"
53
+ #
54
+ # maker.items.new_item do |item|
55
+ # item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
56
+ # item.title = "Ruby 1.9.2-p136 is released"
57
+ # item.updated = Time.now.to_s
58
+ # end
59
+ # end
60
+ #
61
+ # puts rss
62
+ #
63
+ # As you can see, this is a very Builder-like DSL. This code will spit out an
64
+ # Atom feed with one item. If we needed a second item, we'd make another block
65
+ # with maker.items.new_item and build a second one.
66
+ #
67
+ # == Copyright
68
+ #
69
+ # Copyright (c) 2003-2007 Kouhei Sutou <kou@cozmixng.org>
70
+ #
71
+ # You can redistribute it and/or modify it under the same terms as Ruby.
72
+ #
73
+ # There is an additional tutorial by the author of RSS at:
74
+ # http://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser%3A%3ATutorial.en
75
+
76
+ module RSS
77
+ end
6
78
 
7
79
  require 'rss/1.0'
8
80
  require 'rss/2.0'
@@ -1,5 +1,5 @@
1
1
  module RubySL
2
2
  module RSS
3
- VERSION = "1.0.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -19,5 +19,4 @@ Gem::Specification.new do |spec|
19
19
  spec.add_development_dependency "bundler", "~> 1.3"
20
20
  spec.add_development_dependency "rake", "~> 10.0"
21
21
  spec.add_development_dependency "mspec", "~> 1.5"
22
- spec.add_development_dependency "rubysl-prettyprint", "~> 1.0"
23
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysl-rss
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Shirai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-26 00:00:00.000000000 Z
11
+ date: 2013-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.5'
55
- - !ruby/object:Gem::Dependency
56
- name: rubysl-prettyprint
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
55
  description: Ruby standard library rss.
70
56
  email:
71
57
  - brixen@gmail.com