yarss 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: fc0dfd0adff083176c44262ea275f200e4566d26
4
- data.tar.gz: 25f309a4612f77c4707682974bc599ee2bb4d9b0
3
+ metadata.gz: 10141807ccd636dee18d71052040ae3e2244bdbc
4
+ data.tar.gz: 85800b602dd8b1173f5bc39d37a61a9db92e1bda
5
5
  SHA512:
6
- metadata.gz: 7ba2fe7dedafc8b4119ffd10a18579a46ee0ab16d79ada7ff686b525557a687838700e3861164d1da32e5d29babe223d841592145baeb97fec4c016d462675e8
7
- data.tar.gz: 09abd702209f127c807c28db014f03ffcc53288d0445abdf3e37e8be3e1202e62d05b0c5bd9bdb6933fd49c51b23eb5c71cf7aa2729d696119a50b7dd15a8b5a
6
+ metadata.gz: 553997251990af37d1a27f86415e73a36c0445b639ec0c64b6eb0bbf18cf39c2280917ddf930f98a8af702638869f75752cac2aa752907a72e445f4bb1e3f717
7
+ data.tar.gz: 8e5a8ed10bd88a91ed283b30e86be00d4aaaac14ceebbadf1fcebd49c0fa192c8cb2936cd85d7540ac5f86635f164952cff45dcdef9f52b3a5ec082ab942e1bd
data/.yardopts CHANGED
@@ -1,6 +1,7 @@
1
1
  --protected
2
2
  --private
3
3
  --embed-mixins
4
+ --default-return void
4
5
  lib/**/*.rb
5
6
  -
6
7
  README.md
data/README.md CHANGED
@@ -11,19 +11,34 @@ the fastest XML parser I know of. JRuby users should probably use
11
11
  ## Usage
12
12
 
13
13
  ```ruby
14
- ['path/to/feed.rss', 'path/to/feed.atom', 'path/to/feed.rdf'].each do |file_path|
15
- feed.title # => "Foo's bars"
16
- feed.link # => 'http://foo.bar/'
17
- feed.description # => 'Bars everywhere!'
18
-
19
- feed.items.each do |item|
20
- item.id # => 'id'
21
- item.title # => 'Hello!'
22
- item.updated_at # => #<DateTIme ...>
23
- item.link # => 'http://foo.bar/1'
24
- item.author # => 'Joe'
25
- item.content # => '<p>Hi!</p>'
26
- end
14
+ # Parse from a String (raw XML), a Pathname, or an IO:
15
+ feed = Yarss.new('<xml string>...')
16
+ feed = Yarss.new(Pathname.new('path/to/feed.rss'))
17
+ feed = Yarss.new(File.open('path/to/feed.rss', 'rb'))
18
+
19
+ # Parse using IO-like, needs to respond to #read:
20
+ feed = Yarss.from_io(Pathname.new('path/to/feed.rss'))
21
+ feed = Yarss.from_io(File.open('path/to/feed.rss', 'rb'))
22
+
23
+ # Parse from a file path:
24
+ feed = Yarss.from_file('path/to/feed.rss')
25
+
26
+ # Parse from a string:
27
+ feed = Yarss.from_string('<xml string>...')
28
+
29
+ # Access feed attributes:
30
+ feed.title # => "Foo's bars"
31
+ feed.link # => 'http://foo.bar/'
32
+ feed.description # => 'Bars everywhere!'
33
+
34
+ # Access feed items:
35
+ feed.items.each do |item|
36
+ item.id # => 'id'
37
+ item.title # => 'Hello!'
38
+ item.updated_at # => #<DateTIme ...>
39
+ item.link # => 'http://foo.bar/1'
40
+ item.author # => 'Joe'
41
+ item.content # => '<p>Hi!</p>'
27
42
  end
28
43
  ```
29
44
 
@@ -19,8 +19,8 @@ module Yarss
19
19
  # Not a RSS, RDF or Atom feed.
20
20
  class UnknownParserError < Error; end
21
21
 
22
- # Parse a {Feed} out of a path to a XML or an IO (or whatever responds
23
- # to +read+).
22
+ # Parse a {Feed} out of a path to a XML or an IO-like that responds
23
+ # to +read+.
24
24
  #
25
25
  # @raise [UnknownParserError] If no corresponding parser was found.
26
26
  # @raise [ParseError] If XML parsing or field extracting failed.
@@ -29,7 +29,9 @@ module Yarss
29
29
  # Pathname, something that can be read.
30
30
  #
31
31
  # @example
32
- # feed = Yarss.new('path/to/feed.rss')
32
+ # feed = Yarss.new('<xml string>...')
33
+ # feed = Yarss.new(Pathname.new('path/to/feed.rss'))
34
+ # feed = Yarss.new(File.open('path/to/feed.rss', 'rb'))
33
35
  #
34
36
  # feed.title # => "Foo's bars"
35
37
  # feed.link # => 'http://foo.bar/'
@@ -49,7 +51,7 @@ module Yarss
49
51
  if path_or_io.respond_to?(:read)
50
52
  from_io(path_or_io)
51
53
  else
52
- from_file(path_or_io)
54
+ from_string(path_or_io)
53
55
  end
54
56
  end
55
57
 
@@ -121,7 +123,7 @@ module Yarss
121
123
  # @param path_or_io [String, #read] Path to a file or an IO.
122
124
  #
123
125
  # @example
124
- # feed = Yarss.from_string('...)
126
+ # feed = Yarss.from_string('<xml string>...')
125
127
  #
126
128
  # feed.title # => "Foo's bars"
127
129
  # feed.link # => 'http://foo.bar/'
@@ -108,9 +108,7 @@ module Yarss
108
108
  (?="|')
109
109
  }x
110
110
 
111
- content = content.gsub(regex) do |url|
112
- "#{base.chomp('/')}#{url}"
113
- end
111
+ content = content.gsub(regex) { |url| URI.join(base, url) }
114
112
  content.gsub!("\r\n", "\n")
115
113
 
116
114
  content.freeze
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Yarss
4
4
  # Version number, happy now?
5
- VERSION = '0.0.5'
5
+ VERSION = '0.0.6'
6
6
  end
@@ -24,21 +24,21 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  # System
26
26
  spec.add_development_dependency 'bundler', '~> 1.11'
27
- # spec.add_development_dependency 'ox', '~> 2.2'
27
+ # spec.add_development_dependency 'ox', '~> 2.3'
28
28
  # spec.add_development_dependency 'nokogiri', '~> 1.6'
29
- # spec.add_development_dependency 'oga', '~> 2.0'
29
+ # spec.add_development_dependency 'oga', '~> 2.2'
30
30
 
31
31
  # Test
32
32
  spec.add_development_dependency 'rspec', '~> 3.4'
33
33
  spec.add_development_dependency 'simplecov', '~> 0.11'
34
34
 
35
35
  # Code style, debugging, docs
36
- spec.add_development_dependency 'rubocop', '~> 0.37'
36
+ spec.add_development_dependency 'rubocop', '~> 0.38'
37
37
  spec.add_development_dependency 'pry', '~> 0.10'
38
38
  # spec.add_development_dependency 'pry-doc', '~> 0.8'
39
39
  # spec.add_development_dependency 'pry-byebug', '~> 3.3'
40
40
  spec.add_development_dependency 'yard', '~> 0.8'
41
- spec.add_development_dependency 'rake', '~> 10.5'
41
+ spec.add_development_dependency 'rake', '~> 11.1'
42
42
 
43
43
  # Provides swappable XML backends utilizing LibXML, Nokogiri, Ox, Oga or REXML.
44
44
  spec.add_runtime_dependency 'multi_xml', '~> 0.5'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oldrich Vetesnik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-08 00:00:00.000000000 Z
11
+ date: 2016-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.37'
61
+ version: '0.38'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.37'
68
+ version: '0.38'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '10.5'
103
+ version: '11.1'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '10.5'
110
+ version: '11.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: multi_xml
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  version: '0'
173
173
  requirements: []
174
174
  rubyforge_project:
175
- rubygems_version: 2.5.2
175
+ rubygems_version: 2.6.1
176
176
  signing_key:
177
177
  specification_version: 4
178
178
  summary: Yet Another RSS Feed Normalizer.