shelf 0.0.1
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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +21 -0
- data/Rakefile +45 -0
- data/VERSION +1 -0
- data/bin/eshelf.rb +37 -0
- data/config/config.yaml.template +4 -0
- data/lib/shelf.rb +98 -0
- data/lib/shelf/download.rb +64 -0
- data/lib/shelf/item.rb +70 -0
- data/spec/download_spec.rb +71 -0
- data/spec/item_spec.rb +75 -0
- data/spec/shelf_spec.rb +28 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +9 -0
- metadata +105 -0
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Rune Myrland
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
= shelf
|
2
|
+
|
3
|
+
Publish ebooks to Epubify Shelf
|
4
|
+
|
5
|
+
== Description
|
6
|
+
|
7
|
+
Epubify Shelf is presently under construction. It will be an online bookshelf for ebooks.
|
8
|
+
|
9
|
+
== Note on Patches/Pull Requests
|
10
|
+
|
11
|
+
* Fork the project.
|
12
|
+
* Make your feature addition or bug fix.
|
13
|
+
* Add tests for it. This is important so I don't break it in a
|
14
|
+
future version unintentionally.
|
15
|
+
* Commit, do not mess with rakefile, version, or history.
|
16
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
17
|
+
* Send me a pull request. Bonus points for topic branches.
|
18
|
+
|
19
|
+
== Copyright
|
20
|
+
|
21
|
+
Copyright (c) 2011 Rune Myrland. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "shelf"
|
8
|
+
gem.summary = %Q{Publish ebooks to Epubify Shelf}
|
9
|
+
gem.description = %Q{Epubify Shelf is presently under construction. It will be an online bookshelf for ebooks.}
|
10
|
+
gem.email = "rune@epubify.com"
|
11
|
+
gem.homepage = "http://github.com/wrimle/shelf"
|
12
|
+
gem.authors = ["Rune Myrland"]
|
13
|
+
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
+
end
|
16
|
+
Jeweler::GemcutterTasks.new
|
17
|
+
rescue LoadError
|
18
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
19
|
+
end
|
20
|
+
|
21
|
+
require 'spec/rake/spectask'
|
22
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
23
|
+
spec.libs << 'lib' << 'spec'
|
24
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
25
|
+
end
|
26
|
+
|
27
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
28
|
+
spec.libs << 'lib' << 'spec'
|
29
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
30
|
+
spec.rcov = true
|
31
|
+
end
|
32
|
+
|
33
|
+
task :spec => :check_dependencies
|
34
|
+
|
35
|
+
task :default => :spec
|
36
|
+
|
37
|
+
require 'rake/rdoctask'
|
38
|
+
Rake::RDocTask.new do |rdoc|
|
39
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
40
|
+
|
41
|
+
rdoc.rdoc_dir = 'rdoc'
|
42
|
+
rdoc.title = "shelf #{version}"
|
43
|
+
rdoc.rdoc_files.include('README*')
|
44
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
45
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/eshelf.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
4
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
+
require 'shelf'
|
6
|
+
|
7
|
+
|
8
|
+
Epubify::Shelf.base_uri 'localhost:3000'
|
9
|
+
Epubify::Shelf.api_key = "tlzr_ZMgVEPRiHCK-Nix"
|
10
|
+
shelf = Epubify::Shelf
|
11
|
+
|
12
|
+
#res = Epubify::Item.find(1)
|
13
|
+
#puts res.inspect
|
14
|
+
|
15
|
+
#res = shelf.items
|
16
|
+
#puts res.inspect
|
17
|
+
|
18
|
+
|
19
|
+
#res = shelf.item(1)
|
20
|
+
#puts res["item"].inspect
|
21
|
+
|
22
|
+
#item = Epubify::Item.new
|
23
|
+
#item.title = "MyDaily2 #{Date.today.to_s}"
|
24
|
+
#item.summary = "Daily news aggregated at #{DateTime.now.to_s}"
|
25
|
+
|
26
|
+
#puts item.inspect
|
27
|
+
#res = item.save
|
28
|
+
|
29
|
+
|
30
|
+
item = Epubify::Item.find(1)
|
31
|
+
#puts item.inspect
|
32
|
+
res = item.share(2)
|
33
|
+
puts res.inspect
|
34
|
+
|
35
|
+
#res = Epubify::Item.find(2)
|
36
|
+
#puts res.inspect
|
37
|
+
|
data/lib/shelf.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
|
2
|
+
require 'rubygems'
|
3
|
+
require 'httparty'
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
module Epubify
|
7
|
+
class ShelfApi
|
8
|
+
include HTTParty
|
9
|
+
|
10
|
+
base_uri 'shelf.epubify.com'
|
11
|
+
|
12
|
+
def self.api_key
|
13
|
+
@api_key
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.api_key= k
|
17
|
+
@api_key = k
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.items
|
21
|
+
get "/api/#{api_key}/items.xml"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.item id
|
25
|
+
get "/api/#{api_key}/items/#{id}.xml"
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.update_item id, query
|
29
|
+
put("/api/#{api_key}/items/#{id}.xml", :query => query)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.create_item query
|
33
|
+
post("/api/#{api_key}/items.xml", :query => query)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.destroy_item id
|
37
|
+
delete("/api/#{api_key}/items/#{id}.xml")
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
def self.share_item query
|
42
|
+
post("/api/#{api_key}/shelf_items.xml", :query => query)
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
def self.downloads item_id
|
47
|
+
get "/api/#{api_key}/downloads.xml", :query => { :item_id => item_id }
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.download id
|
51
|
+
get "/api/#{api_key}/downloads/#{id}.xml"
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
def self.update_download id, query
|
56
|
+
put("/api/#{api_key}/downloads/#{id}.xml", :query => query)
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.create_download query
|
60
|
+
post("/api/#{api_key}/downloads.xml", :query => query)
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.destroy_download id
|
64
|
+
delete("/api/#{api_key}/downloads/#{id}.xml")
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
require 'shelf/download.rb'
|
74
|
+
require 'shelf/item.rb'
|
75
|
+
|
76
|
+
|
77
|
+
module Epubify
|
78
|
+
|
79
|
+
class Shelf
|
80
|
+
def initialize
|
81
|
+
@items = nil
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
def items
|
86
|
+
unless @items
|
87
|
+
res = ShelfApi.items
|
88
|
+
@items = []
|
89
|
+
res["items"].each do |hash|
|
90
|
+
@items << Item.new(hash)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
@items
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Epubify
|
4
|
+
|
5
|
+
class Download
|
6
|
+
attr_accessor :id, :item_id, :content_type, :url
|
7
|
+
|
8
|
+
def initialize h = nil, &block
|
9
|
+
content_type = "application/epub+zip"
|
10
|
+
|
11
|
+
from_hash h if h
|
12
|
+
yield self if block
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def from_hash h
|
17
|
+
self.id = h["id"]
|
18
|
+
self.item_id = h["item_id"]
|
19
|
+
self.content_type = h["content_type"]
|
20
|
+
self.url = h["url"]
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def item= v
|
25
|
+
@item = v
|
26
|
+
item_id = v.id
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def item
|
31
|
+
@item
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def self.find id
|
36
|
+
res = ShelfApi.download(id)
|
37
|
+
|
38
|
+
download = res["download"]
|
39
|
+
Download.new do |d|
|
40
|
+
d.from_hash download
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def destroy
|
46
|
+
ShelfApi.destroy_download(id) if id
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def save
|
51
|
+
@query = { :download => { :item_id => item_id, :content_type => content_type, :url => url } }
|
52
|
+
|
53
|
+
if id
|
54
|
+
res = ShelfApi.update_download(id, @query)
|
55
|
+
else
|
56
|
+
res = ShelfApi.create_download(@query)
|
57
|
+
from_hash res["download"]
|
58
|
+
end
|
59
|
+
|
60
|
+
res
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
data/lib/shelf/item.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'shelf/download.rb'
|
2
|
+
|
3
|
+
|
4
|
+
module Epubify
|
5
|
+
|
6
|
+
class Item
|
7
|
+
attr_accessor :id, :title, :summary, :description, :cover_url, :thumbnail_url, :language, :issued
|
8
|
+
|
9
|
+
def initialize hash = nil, &block
|
10
|
+
summary = ""
|
11
|
+
description = ""
|
12
|
+
language = "no"
|
13
|
+
issued = "#{Date.today.to_s}"
|
14
|
+
|
15
|
+
from_hash hash if hash
|
16
|
+
yield self if block
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.find id
|
20
|
+
res = ShelfApi.item(id)
|
21
|
+
|
22
|
+
item = res["item"]
|
23
|
+
Item.new do |i|
|
24
|
+
i.from_hash item
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def from_hash h
|
29
|
+
self.id = h["id"]
|
30
|
+
self.title = h["title"]
|
31
|
+
self.summary = h["summary"]
|
32
|
+
self.description = h["description"]
|
33
|
+
self.cover_url = h["cover_url"]
|
34
|
+
self.thumbnail_url = h["thumbnail_url"]
|
35
|
+
self.language = h["language"]
|
36
|
+
self.issued = h["issued"]
|
37
|
+
end
|
38
|
+
|
39
|
+
def save
|
40
|
+
@query = { :item => { :title => title, :summary => summary, :description => description, :cover_url => cover_url, :thumbnail_url => thumbnail_url, :language => language, :issued => issued } }
|
41
|
+
|
42
|
+
if id
|
43
|
+
res = ShelfApi.update_item(id, @query)
|
44
|
+
else
|
45
|
+
res = ShelfApi.create_item(@query)
|
46
|
+
from_hash res["item"]
|
47
|
+
end
|
48
|
+
res
|
49
|
+
end
|
50
|
+
|
51
|
+
def destroy
|
52
|
+
ShelfApi.destroy_item(id) if id
|
53
|
+
end
|
54
|
+
|
55
|
+
def share item_id
|
56
|
+
@query = { :shelf_item => { :shelf_id => nil, :item_id => item_id } }
|
57
|
+
ShelfApi.share_item(@query)
|
58
|
+
end
|
59
|
+
|
60
|
+
def downloads
|
61
|
+
res = ShelfApi.downloads(id)
|
62
|
+
d = []
|
63
|
+
res["downloads"].each do |hash|
|
64
|
+
d << Download.new(hash)
|
65
|
+
end
|
66
|
+
d
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
|
6
|
+
module Epubify
|
7
|
+
config = YAML::load(File.open("config/config.yaml"))
|
8
|
+
|
9
|
+
|
10
|
+
ShelfApi.api_key= config["test"]["api_key"]
|
11
|
+
ShelfApi.base_uri config["test"]["server"]
|
12
|
+
|
13
|
+
|
14
|
+
describe Download do
|
15
|
+
before(:each) do
|
16
|
+
end
|
17
|
+
|
18
|
+
it "gets a download" do
|
19
|
+
download = Download.find(1)
|
20
|
+
download.id.should_not be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
it "updates a download" do
|
25
|
+
download = Download.find(1)
|
26
|
+
old_url = download.url
|
27
|
+
new_url = "www.example.com/dummy"
|
28
|
+
|
29
|
+
download.url = new_url
|
30
|
+
download.save
|
31
|
+
|
32
|
+
download = Download.find(1)
|
33
|
+
download.url.should eql new_url
|
34
|
+
|
35
|
+
# Restore original value
|
36
|
+
download.url = old_url
|
37
|
+
download.save
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
it "creates a download" do
|
42
|
+
item = Item.find(1)
|
43
|
+
count = item.downloads.length
|
44
|
+
|
45
|
+
download = Epubify::Download.new
|
46
|
+
download.url = "/example.epub"
|
47
|
+
download.item_id = 1
|
48
|
+
download.save
|
49
|
+
|
50
|
+
item = Item.find(1)
|
51
|
+
item.downloads.length.should be > count
|
52
|
+
download.id.should_not be_nil
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
it "destroys a download" do
|
57
|
+
item = Item.find(1)
|
58
|
+
count = item.downloads.length
|
59
|
+
count.should be > 1
|
60
|
+
|
61
|
+
download = item.downloads.pop
|
62
|
+
download.destroy
|
63
|
+
|
64
|
+
|
65
|
+
item = Item.find(1)
|
66
|
+
item.downloads.length.should be < count
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
data/spec/item_spec.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
|
6
|
+
module Epubify
|
7
|
+
config = YAML::load(File.open("config/config.yaml"))
|
8
|
+
|
9
|
+
ShelfApi.api_key= config["test"]["api_key"]
|
10
|
+
ShelfApi.base_uri config["test"]["server"]
|
11
|
+
|
12
|
+
|
13
|
+
describe Item do
|
14
|
+
before(:each) do
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
it "finds an item" do
|
19
|
+
item = Item.find(1)
|
20
|
+
item.id.should be 1
|
21
|
+
item.title.should_not be_nil
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
it "updates a download" do
|
26
|
+
item = Item.find(1)
|
27
|
+
old_title = item.title
|
28
|
+
new_title = "Test title"
|
29
|
+
|
30
|
+
item.title = new_title
|
31
|
+
item.save
|
32
|
+
|
33
|
+
item = Item.find(1)
|
34
|
+
item.title.should eql new_title
|
35
|
+
|
36
|
+
# Restore original value
|
37
|
+
item.title = old_title
|
38
|
+
item.save
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
it "gets the downloads of an item" do
|
43
|
+
item = Item.find(1)
|
44
|
+
downloads = item.downloads
|
45
|
+
downloads.length.should be > 0
|
46
|
+
downloads[0].id.should_not be_nil
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
it "creates an item" do
|
51
|
+
count = Shelf.new.items.length
|
52
|
+
|
53
|
+
item = Epubify::Item.new
|
54
|
+
item.title = "MyDaily #{Date.today.to_s}"
|
55
|
+
item.summary = "Daily news aggregated at #{DateTime.now.to_s}"
|
56
|
+
item.save
|
57
|
+
|
58
|
+
Shelf.new.items.length.should be > count
|
59
|
+
item.id.should_not be_nil
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
it "destroys an item" do
|
64
|
+
items = Shelf.new.items
|
65
|
+
count = items.length
|
66
|
+
count.should be > 1
|
67
|
+
item = items.pop
|
68
|
+
item.destroy
|
69
|
+
|
70
|
+
Shelf.new.items.length.should be < count
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
data/spec/shelf_spec.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
|
6
|
+
module Epubify
|
7
|
+
config = YAML::load(File.open("config/config.yaml"))
|
8
|
+
|
9
|
+
|
10
|
+
ShelfApi.api_key= config["test"]["api_key"]
|
11
|
+
ShelfApi.base_uri config["test"]["server"]
|
12
|
+
|
13
|
+
|
14
|
+
describe ShelfApi do
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
describe Shelf do
|
19
|
+
before(:each) do
|
20
|
+
end
|
21
|
+
|
22
|
+
it "lists owned items" do
|
23
|
+
shelf = Shelf.new
|
24
|
+
shelf.items.length.should be > 0
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shelf
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Rune Myrland
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-20 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 13
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 2
|
33
|
+
- 9
|
34
|
+
version: 1.2.9
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
description: Epubify Shelf is presently under construction. It will be an online bookshelf for ebooks.
|
38
|
+
email: rune@epubify.com
|
39
|
+
executables:
|
40
|
+
- shelf.rb~
|
41
|
+
- eshelf.rb
|
42
|
+
- eshelf.rb~
|
43
|
+
extensions: []
|
44
|
+
|
45
|
+
extra_rdoc_files:
|
46
|
+
- LICENSE
|
47
|
+
- README.rdoc
|
48
|
+
files:
|
49
|
+
- .document
|
50
|
+
- .gitignore
|
51
|
+
- LICENSE
|
52
|
+
- README.rdoc
|
53
|
+
- Rakefile
|
54
|
+
- VERSION
|
55
|
+
- config/config.yaml.template
|
56
|
+
- lib/shelf.rb
|
57
|
+
- lib/shelf/download.rb
|
58
|
+
- lib/shelf/item.rb
|
59
|
+
- spec/download_spec.rb
|
60
|
+
- spec/item_spec.rb
|
61
|
+
- spec/shelf_spec.rb
|
62
|
+
- spec/spec.opts
|
63
|
+
- spec/spec_helper.rb
|
64
|
+
- bin/shelf.rb~
|
65
|
+
- bin/eshelf.rb
|
66
|
+
- bin/eshelf.rb~
|
67
|
+
has_rdoc: true
|
68
|
+
homepage: http://github.com/wrimle/shelf
|
69
|
+
licenses: []
|
70
|
+
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options:
|
73
|
+
- --charset=UTF-8
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 3
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
version: "0"
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
requirements: []
|
95
|
+
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 1.3.7
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: Publish ebooks to Epubify Shelf
|
101
|
+
test_files:
|
102
|
+
- spec/spec_helper.rb
|
103
|
+
- spec/item_spec.rb
|
104
|
+
- spec/download_spec.rb
|
105
|
+
- spec/shelf_spec.rb
|