gutenberg_rdf 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bbef70a3ac7d39b2bb3c3e0945ba6d722ffa1d2b
4
- data.tar.gz: 98cd1b9df8ad4ff1507cea7a2ade4686aee9302b
3
+ metadata.gz: cde8f277e56fe12183ccc5386414bb2161d8fed3
4
+ data.tar.gz: c5ece359a2fa5e80addb608e5441440e9a46f2cb
5
5
  SHA512:
6
- metadata.gz: 0a2174ab980a295ec48ee2f8791b8bb8d12de541f8159d257f9e2e2ff57d0ad373e60ce40188e9a4007d5be0a54a98e3631532dee07820b609222112382b77e5
7
- data.tar.gz: 2ee305ee3749ba4cfa6239af9acc49e6eea65f4d8ab461eccab474bc4bbdf47df433791b7b398b0a60eaac132255aa3f85123bca3a5e3f3814fa2881d0288deb
6
+ metadata.gz: 92fe622ad63fac10e422b6f4597d14d0fd7e933d8efbe82c68f8f103fe4112a529746eceaadcbe3457432fd9bb298c95018284292b9727d9a0ea0cd06c5ca314
7
+ data.tar.gz: 45324adf7e17df7e5faeaf1b2b599d8d73bd056d8e3ee82205950e6e1409db114d838c8fb6ef11eba9df1330d0d08a5364e2467ab07095cca50765a2bbd505f0
data/README.md CHANGED
@@ -6,7 +6,6 @@ providing a nice API to all the metadata contained within.
6
6
  ## Requirements
7
7
 
8
8
  * Ruby 2.0 - this is so we get UTF-8 by default
9
- * Nokogiri - for parsing the RDF
10
9
 
11
10
 
12
11
  ## Installation
@@ -27,8 +26,7 @@ Or install it yourself as:
27
26
 
28
27
  require 'gutenberg_rdf'
29
28
 
30
- xml = Nokogiri::XML(File.new('/path/to/pg2746.rdf'))
31
- book = GutenbergRdf::Rdf.new(xml)
29
+ book = GutenbergRdf.parse('/path/to/pg2746.rdf')
32
30
 
33
31
  puts book.id
34
32
  #=> "2746"
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Mike Cook"]
9
9
  spec.email = ["m@mikecook.co.uk"]
10
10
  spec.summary = %q{A Ruby wrapper for the Project Gutenberg RDF catalog files.}
11
- spec.description = %q{A Ruby wrapper providing a nice API for the Project Gutenberg RDF catalog files. See the README for more information.}
11
+ spec.description = %q{A Ruby wrapper for the Project Gutenberg RDF catalog files (requires Ruby 2).}
12
12
  spec.homepage = ""
13
13
  spec.license = "MIT"
14
14
 
@@ -19,10 +19,5 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.required_ruby_version = ">= 2.0.0" # so we have UTF-8 by default
21
21
 
22
- spec.add_dependency "nokogiri", "~> 1.6.0"
23
-
24
- spec.add_development_dependency "bundler", "~> 1.3"
25
- spec.add_development_dependency "rake"
26
-
27
22
  spec.add_development_dependency "rspec", "~> 2.14.1"
28
23
  end
@@ -8,7 +8,7 @@ module GutenbergRdf
8
8
  end
9
9
 
10
10
  def id
11
- xml.at_xpath('pgterms:agent').attribute('about').content.match(/\A\d\d\d\d\/agents\/(\d+)\z/)[1]
11
+ xml.elements['pgterms:agent'].attributes['about'].match(/\A\d\d\d\d\/agents\/(\d+)\z/)[1]
12
12
  end
13
13
 
14
14
  def fullname
@@ -24,20 +24,20 @@ module GutenbergRdf
24
24
  end
25
25
 
26
26
  def birthdate
27
- xml.at_xpath('pgterms:agent/pgterms:birthdate').text
27
+ xml.elements['pgterms:agent/pgterms:birthdate'].text
28
28
  end
29
29
 
30
30
  def deathdate
31
- xml.at_xpath('pgterms:agent/pgterms:deathdate').text
31
+ xml.elements['pgterms:agent/pgterms:deathdate'].text
32
32
  end
33
33
 
34
34
  def webpage
35
- xml.at_xpath('pgterms:agent/pgterms:webpage').attribute('resource').content
35
+ xml.elements['pgterms:agent/pgterms:webpage'].attributes['resource']
36
36
  end
37
37
 
38
38
  def aliases
39
39
  entries = Array.new
40
- xml.xpath('//pgterms:alias').each do |name|
40
+ xml.elements.each('pgterms:agent/pgterms:alias') do |name|
41
41
  entries << name.text
42
42
  end
43
43
  entries
@@ -46,7 +46,7 @@ module GutenbergRdf
46
46
  private
47
47
 
48
48
  def name_parts
49
- parts = xml.xpath('//pgterms:name').text.split(/, */)
49
+ parts = xml.elements['pgterms:agent/pgterms:name'].text.split(/, */)
50
50
  last = parts.shift
51
51
  first = parts.reverse.join(' ')
52
52
 
@@ -5,15 +5,15 @@ module GutenbergRdf
5
5
  attr_reader :xml
6
6
 
7
7
  def initialize(xml)
8
- @xml = xml.at_xpath('rdf:RDF')
8
+ @xml = xml.root
9
9
  end
10
10
 
11
11
  def id
12
- xml.at_xpath('pgterms:ebook').attribute('about').content.match(/\Aebooks\/(.+)\z/)[1]
12
+ xml.elements['pgterms:ebook'].attributes['about'].match(/\Aebooks\/(.+)\z/)[1]
13
13
  end
14
14
 
15
15
  def type
16
- xml.at_xpath('pgterms:ebook/dcterms:type/rdf:Description/rdf:value').text
16
+ xml.elements['pgterms:ebook/dcterms:type/rdf:Description/rdf:value'].text
17
17
  end
18
18
 
19
19
  def title
@@ -30,9 +30,9 @@ module GutenbergRdf
30
30
 
31
31
  def subjects
32
32
  entries = Array.new
33
- xml.xpath('pgterms:ebook//dcterms:subject').each do |entry|
34
- next unless entry.at_xpath('rdf:Description/dcam:memberOf').attribute('resource').text.match(/LCSH\z/)
35
- entry.xpath('rdf:Description//rdf:value').each do |value|
33
+ xml.elements.each('pgterms:ebook/dcterms:subject') do |entry|
34
+ next unless entry.elements['rdf:Description/dcam:memberOf'].attributes['resource'].match(/LCSH\z/)
35
+ entry.elements.each('rdf:Description//rdf:value') do |value|
36
36
  entries << value.text
37
37
  end
38
38
  end
@@ -40,19 +40,19 @@ module GutenbergRdf
40
40
  end
41
41
 
42
42
  def published
43
- xml.at_xpath('pgterms:ebook/dcterms:issued').text
43
+ xml.elements['pgterms:ebook/dcterms:issued'].text
44
44
  end
45
45
 
46
46
  def publisher
47
- xml.at_xpath('pgterms:ebook/dcterms:publisher').text
47
+ xml.elements['pgterms:ebook/dcterms:publisher'].text
48
48
  end
49
49
 
50
50
  def language
51
- xml.at_xpath('pgterms:ebook/dcterms:language').text
51
+ xml.elements['pgterms:ebook/dcterms:language'].text
52
52
  end
53
53
 
54
54
  def rights
55
- xml.at_xpath('pgterms:ebook/dcterms:rights').text
55
+ xml.elements['pgterms:ebook/dcterms:rights'].text
56
56
  end
57
57
 
58
58
  def covers
@@ -61,10 +61,10 @@ module GutenbergRdf
61
61
 
62
62
  def ebooks
63
63
  files = Array.new
64
- xml.xpath('//pgterms:file').each do |file|
65
- uri = file.attribute('about').content
66
- datatypes = separate_mimetype_and_encoding(file.at_xpath('dcterms:format/rdf:Description/rdf:value').text)
67
- modified = DateTime.parse(file.at_xpath('dcterms:modified').text + '-07:00')
64
+ xml.elements.each('pgterms:file') do |file|
65
+ uri = file.attributes['about']
66
+ datatypes = separate_mimetype_and_encoding(file.elements['dcterms:format/rdf:Description/rdf:value'].text)
67
+ modified = DateTime.parse(file.elements['dcterms:modified'].text + '-07:00')
68
68
  files << {uri: uri, mime_type: datatypes[:mimetype], encoding: datatypes[:encoding], modified: modified}
69
69
  end
70
70
  files
@@ -77,8 +77,8 @@ module GutenbergRdf
77
77
  end
78
78
 
79
79
  def split_title_and_subtitle
80
- # Note this gsub is replacing UTF-8 hyphens with normal ASCII ones
81
- t = xml.at_xpath('pgterms:ebook/dcterms:title').text.gsub(/—/, '-')
80
+ # NOTE: this gsub is replacing UTF-8 hyphens with normal ASCII ones
81
+ t = xml.elements['pgterms:ebook/dcterms:title'].text.gsub(/—/, '-')
82
82
 
83
83
  title_array = t.split(/\n/)
84
84
  title_array = title_array.first.split(/:/) if title_array.count == 1
@@ -89,24 +89,30 @@ module GutenbergRdf
89
89
 
90
90
  def extract_authors
91
91
  entries = Array.new
92
- xml.xpath('//pgterms:agent').each do |agent|
93
- entries << Agent.new(agent)
92
+ xml.elements.each('pgterms:agent') do |agent|
93
+ entries << Agent.new(agent.root)
94
94
  end
95
95
  entries
96
96
  end
97
97
 
98
98
  def official_cover_images
99
99
  entries = Array.new
100
- xml.xpath('//pgterms:file').each do |file|
101
- url = file.attribute('about').content
102
- entries << url if file.xpath('dcterms:format/rdf:Description//rdf:value').detect { |v| v.text.match(/image/) }
100
+ xml.elements.each('pgterms:file') do |file|
101
+ entries << file.attributes['about'] if file_is_image?(file)
103
102
  end
104
103
  entries
105
104
  end
106
105
 
106
+ def file_is_image?(node)
107
+ node.elements.each('dcterms:format/rdf:Description/rdf:value') do |value|
108
+ return true if value.text.match(/image/)
109
+ end
110
+ false
111
+ end
112
+
107
113
  def other_cover_images
108
114
  entries = Array.new
109
- xml.xpath('pgterms:ebook//pgterms:marc901').each do |node|
115
+ xml.elements.each('pgterms:ebook/pgterms:marc901') do |node|
110
116
  cover = node.text
111
117
  cover.sub!(/\Afile:\/\/\/public\/vhost\/g\/gutenberg\/html/, 'http://www.gutenberg.org')
112
118
  entries << cover
@@ -1,3 +1,3 @@
1
1
  module GutenbergRdf
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/gutenberg_rdf.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'nokogiri'
1
+ require 'rexml/document'
2
2
 
3
3
  require "gutenberg_rdf/rdf"
4
4
  require "gutenberg_rdf/rdf/agent"
@@ -7,7 +7,7 @@ require "gutenberg_rdf/version"
7
7
  module GutenbergRdf
8
8
 
9
9
  def self.parse(path)
10
- Rdf.new(Nokogiri::XML(File.new(path)))
10
+ Rdf.new(REXML::Document.new(File.new(path)))
11
11
  end
12
12
 
13
13
  end
@@ -14,8 +14,8 @@ module GutenbergRdf
14
14
  <pgterms:webpage rdf:resource="http://en.wikipedia.org/wiki/Jon_James_Doe"/>
15
15
  </pgterms:agent>
16
16
  </rdf:RDF>'
17
- rdf = Nokogiri::XML(xml)
18
- Agent.new(rdf.at_xpath('rdf:RDF'))
17
+ rdf = REXML::Document.new(xml)
18
+ Agent.new(rdf.root)
19
19
  end
20
20
 
21
21
  it "expects an agent ID" do
@@ -58,8 +58,8 @@ module GutenbergRdf
58
58
  <pgterms:name>Dato</pgterms:name>
59
59
  </pgterms:agent>
60
60
  </rdf:RDF>'
61
- rdf = Nokogiri::XML(xml)
62
- Agent.new(rdf.at_xpath('rdf:RDF'))
61
+ rdf = REXML::Document.new(xml)
62
+ Agent.new(rdf.root)
63
63
  end
64
64
 
65
65
  it "expects it to be assigned to the last name" do
@@ -77,8 +77,8 @@ module GutenbergRdf
77
77
  <pgterms:name>Doe, Jon, Sir</pgterms:name>
78
78
  </pgterms:agent>
79
79
  </rdf:RDF>'
80
- rdf = Nokogiri::XML(xml)
81
- Agent.new(rdf.at_xpath('rdf:RDF'))
80
+ rdf = REXML::Document.new(xml)
81
+ Agent.new(rdf.root)
82
82
  end
83
83
 
84
84
  it "expects the correct name order" do
@@ -94,8 +94,8 @@ module GutenbergRdf
94
94
  <pgterms:name>Doe, J. J. (Jon James)</pgterms:name>
95
95
  </pgterms:agent>
96
96
  </rdf:RDF>'
97
- rdf = Nokogiri::XML(xml)
98
- Agent.new(rdf.at_xpath('rdf:RDF'))
97
+ rdf = REXML::Document.new(xml)
98
+ Agent.new(rdf.root)
99
99
  end
100
100
 
101
101
  it "expects initials to replaced by name in brackets" do
@@ -12,7 +12,7 @@ module GutenbergRdf
12
12
  </pgterms:ebook>
13
13
  </rdf:RDF>'
14
14
  end
15
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
15
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
16
16
 
17
17
  it "expects an id" do
18
18
  expect(rdf.id).to eql "98765"
@@ -32,7 +32,7 @@ module GutenbergRdf
32
32
 
33
33
  describe "#type" do
34
34
  let(:xml) do
35
- '<rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
35
+ '<rdf:RDF xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
36
36
  <pgterms:ebook rdf:about="ebooks/98765">
37
37
  <dcterms:type>
38
38
  <rdf:Description>
@@ -43,7 +43,7 @@ module GutenbergRdf
43
43
  </pgterms:ebook>
44
44
  </rdf:RDF>'
45
45
  end
46
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
46
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
47
47
 
48
48
  it "expect the type of entity" do
49
49
  expect(rdf.type).to eql 'Text'
@@ -58,7 +58,7 @@ module GutenbergRdf
58
58
  </pgterms:ebook>
59
59
  </rdf:RDF>'
60
60
  end
61
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
61
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
62
62
 
63
63
  it "expects a title" do
64
64
  expect(rdf.title).to eql 'A Great Title'
@@ -76,7 +76,7 @@ module GutenbergRdf
76
76
  </pgterms:ebook>
77
77
  </rdf:RDF>'
78
78
  end
79
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
79
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
80
80
 
81
81
  it "expects the title to be the first line" do
82
82
  expect(rdf.title).to eql 'A Great Multi-Title'
@@ -94,7 +94,7 @@ module GutenbergRdf
94
94
  </pgterms:ebook>
95
95
  </rdf:RDF>'
96
96
  end
97
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
97
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
98
98
 
99
99
  it "expects a title" do
100
100
  expect(rdf.title).to eql 'A Great Multi-Title'
@@ -112,7 +112,7 @@ module GutenbergRdf
112
112
  </pgterms:ebook>
113
113
  </rdf:RDF>'
114
114
  end
115
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
115
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
116
116
  it "expects a title" do
117
117
  expect(rdf.title).to eql 'A Great Multi-Title'
118
118
  end
@@ -129,7 +129,7 @@ module GutenbergRdf
129
129
  </pgterms:ebook>
130
130
  </rdf:RDF>'
131
131
  end
132
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
132
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
133
133
  it "expects a title" do
134
134
  expect(rdf.title).to eql 'A Great Multi-Title; and some other text'
135
135
  end
@@ -156,7 +156,8 @@ module GutenbergRdf
156
156
  </pgterms:agent>
157
157
  </rdf:RDF>'
158
158
  end
159
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
159
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
160
+
160
161
  it "expects a Array" do
161
162
  expect(rdf.authors.class).to be Array
162
163
  end
@@ -188,7 +189,7 @@ module GutenbergRdf
188
189
  </pgterms:ebook>
189
190
  </rdf:RDF>}
190
191
  end
191
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
192
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
192
193
  it "expects correct number to be returned" do
193
194
  expect(rdf.subjects.count).to be 2
194
195
  end
@@ -201,7 +202,7 @@ module GutenbergRdf
201
202
  describe "#covers" do
202
203
  describe "official PG covers" do
203
204
  let(:xml) do
204
- '<rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
205
+ '<rdf:RDF xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
205
206
  <pgterms:ebook rdf:about="ebooks/12345">
206
207
  <dcterms:hasFormat rdf:resource="http://www.gutenberg.org/ebooks/12345.epub.noimages"/>
207
208
  <dcterms:hasFormat rdf:resource="http://www.gutenberg.org/ebooks/12345.cover.medium"/>
@@ -243,7 +244,7 @@ module GutenbergRdf
243
244
  </pgterms:file>
244
245
  </rdf:RDF>'
245
246
  end
246
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
247
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
247
248
 
248
249
  it "expects the correct number of entries returned" do
249
250
  expect(rdf.covers.count).to be 3
@@ -267,7 +268,7 @@ module GutenbergRdf
267
268
  </pgterms:ebook>
268
269
  </rdf:RDF>'
269
270
  end
270
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
271
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
271
272
 
272
273
  it "expects only unique entries" do
273
274
  expect(rdf.covers.count).to be 2
@@ -284,7 +285,7 @@ module GutenbergRdf
284
285
 
285
286
  describe "#ebook" do
286
287
  let(:xml) do
287
- '<rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
288
+ '<rdf:RDF xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
288
289
  <pgterms:ebook rdf:about="ebooks/98765">
289
290
  <dcterms:hasFormat rdf:resource="http://www.gutenberg.org/ebooks/98765.txt.utf-8"/>
290
291
  <dcterms:hasFormat rdf:resource="http://www.gutenberg.org/ebooks/98765.zip"/>
@@ -314,7 +315,7 @@ module GutenbergRdf
314
315
  </pgterms:file>
315
316
  </rdf:RDF>'
316
317
  end
317
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
318
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
318
319
 
319
320
  it "expects the correct number of entries" do
320
321
  expect(rdf.ebooks.count).to be 2
@@ -344,7 +345,7 @@ module GutenbergRdf
344
345
 
345
346
  context "when there are two mime-types" do
346
347
  let(:xml) do
347
- '<rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
348
+ '<rdf:RDF xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:pgterms="http://www.gutenberg.org/2009/pgterms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
348
349
  <pgterms:file rdf:about="http://www.gutenberg.org/files/98765/98765.zip">
349
350
  <dcterms:extent rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">116685</dcterms:extent>
350
351
  <dcterms:format>
@@ -359,7 +360,7 @@ module GutenbergRdf
359
360
  </pgterms:file>
360
361
  </rdf:RDF>'
361
362
  end
362
- let(:rdf) { Rdf.new(Nokogiri::XML(xml)) }
363
+ let(:rdf) { Rdf.new(REXML::Document.new(xml)) }
363
364
 
364
365
  it "should use just the first one" do
365
366
  expect(rdf.ebooks.first[:mime_type]).to eql 'application/zip'
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gutenberg_rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Cook
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-18 00:00:00.000000000 Z
11
+ date: 2013-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: nokogiri
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: 1.6.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: 1.6.0
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '1.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
13
  - !ruby/object:Gem::Dependency
56
14
  name: rspec
57
15
  requirement: !ruby/object:Gem::Requirement
@@ -66,8 +24,8 @@ dependencies:
66
24
  - - ~>
67
25
  - !ruby/object:Gem::Version
68
26
  version: 2.14.1
69
- description: A Ruby wrapper providing a nice API for the Project Gutenberg RDF catalog
70
- files. See the README for more information.
27
+ description: A Ruby wrapper for the Project Gutenberg RDF catalog files (requires
28
+ Ruby 2).
71
29
  email:
72
30
  - m@mikecook.co.uk
73
31
  executables: []