gutenberg_rdf 0.0.2 → 0.1.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 +4 -4
- data/README.md +1 -3
- data/gutenberg_rdf.gemspec +1 -6
- data/lib/gutenberg_rdf/rdf/agent.rb +6 -6
- data/lib/gutenberg_rdf/rdf.rb +28 -22
- data/lib/gutenberg_rdf/version.rb +1 -1
- data/lib/gutenberg_rdf.rb +2 -2
- data/spec/gutenberg_rdf/rdf/agent_spec.rb +8 -8
- data/spec/gutenberg_rdf/rdf_spec.rb +18 -17
- metadata +4 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cde8f277e56fe12183ccc5386414bb2161d8fed3
|
4
|
+
data.tar.gz: c5ece359a2fa5e80addb608e5441440e9a46f2cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
31
|
-
book = GutenbergRdf::Rdf.new(xml)
|
29
|
+
book = GutenbergRdf.parse('/path/to/pg2746.rdf')
|
32
30
|
|
33
31
|
puts book.id
|
34
32
|
#=> "2746"
|
data/gutenberg_rdf.gemspec
CHANGED
@@ -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
|
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.
|
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.
|
27
|
+
xml.elements['pgterms:agent/pgterms:birthdate'].text
|
28
28
|
end
|
29
29
|
|
30
30
|
def deathdate
|
31
|
-
xml.
|
31
|
+
xml.elements['pgterms:agent/pgterms:deathdate'].text
|
32
32
|
end
|
33
33
|
|
34
34
|
def webpage
|
35
|
-
xml.
|
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.
|
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.
|
49
|
+
parts = xml.elements['pgterms:agent/pgterms:name'].text.split(/, */)
|
50
50
|
last = parts.shift
|
51
51
|
first = parts.reverse.join(' ')
|
52
52
|
|
data/lib/gutenberg_rdf/rdf.rb
CHANGED
@@ -5,15 +5,15 @@ module GutenbergRdf
|
|
5
5
|
attr_reader :xml
|
6
6
|
|
7
7
|
def initialize(xml)
|
8
|
-
@xml = xml.
|
8
|
+
@xml = xml.root
|
9
9
|
end
|
10
10
|
|
11
11
|
def id
|
12
|
-
xml.
|
12
|
+
xml.elements['pgterms:ebook'].attributes['about'].match(/\Aebooks\/(.+)\z/)[1]
|
13
13
|
end
|
14
14
|
|
15
15
|
def type
|
16
|
-
xml.
|
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.
|
34
|
-
next unless entry.
|
35
|
-
entry.
|
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.
|
43
|
+
xml.elements['pgterms:ebook/dcterms:issued'].text
|
44
44
|
end
|
45
45
|
|
46
46
|
def publisher
|
47
|
-
xml.
|
47
|
+
xml.elements['pgterms:ebook/dcterms:publisher'].text
|
48
48
|
end
|
49
49
|
|
50
50
|
def language
|
51
|
-
xml.
|
51
|
+
xml.elements['pgterms:ebook/dcterms:language'].text
|
52
52
|
end
|
53
53
|
|
54
54
|
def rights
|
55
|
-
xml.
|
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.
|
65
|
-
uri = file.
|
66
|
-
datatypes = separate_mimetype_and_encoding(file.
|
67
|
-
modified = DateTime.parse(file.
|
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
|
-
#
|
81
|
-
t = xml.
|
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.
|
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.
|
101
|
-
|
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.
|
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
|
data/lib/gutenberg_rdf.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
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(
|
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 =
|
18
|
-
Agent.new(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 =
|
62
|
-
Agent.new(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 =
|
81
|
-
Agent.new(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 =
|
98
|
-
Agent.new(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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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
|
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-
|
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
|
70
|
-
|
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: []
|