isbndb 1.5.3 → 1.5.4
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/ACKNOWLEDGEMENTS +3 -1
- data/Gemfile +4 -2
- data/Gemfile.lock +6 -2
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/isbndb.gemspec +77 -0
- data/lib/isbndb.rb +15 -14
- data/lib/isbndb/result.rb +6 -10
- data/test/test_isbndb.rb +57 -50
- metadata +40 -19
data/ACKNOWLEDGEMENTS
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
Special thanks to Terje Tjervaag (https://github.com/terje) for giving up the gem name 'isbndb'!
|
1
|
+
Special thanks to Terje Tjervaag (https://github.com/terje) for giving up the gem name 'isbndb'!
|
2
|
+
|
3
|
+
Special thanks to Lazlo (https://github.com/lazlo) for forwarding his project here!
|
data/Gemfile
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
+
gem 'activesupport'
|
4
|
+
gem 'i18n'
|
3
5
|
gem 'libxml-ruby', '>= 1.1.4'
|
4
6
|
|
5
7
|
# Include everything needed to run rake, tests, features, etc.
|
6
8
|
group :development do
|
7
9
|
gem "shoulda", ">= 0"
|
8
|
-
gem "bundler"
|
9
|
-
gem "jeweler"
|
10
|
+
gem "bundler"
|
11
|
+
gem "jeweler"
|
10
12
|
gem "rcov", ">= 0"
|
11
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
activesupport (3.0.5)
|
4
5
|
git (1.2.5)
|
6
|
+
i18n (0.5.0)
|
5
7
|
jeweler (1.5.2)
|
6
8
|
bundler (~> 1.0.0)
|
7
9
|
git (>= 1.2.5)
|
@@ -15,8 +17,10 @@ PLATFORMS
|
|
15
17
|
ruby
|
16
18
|
|
17
19
|
DEPENDENCIES
|
18
|
-
|
19
|
-
|
20
|
+
activesupport
|
21
|
+
bundler
|
22
|
+
i18n
|
23
|
+
jeweler
|
20
24
|
libxml-ruby (>= 1.1.4)
|
21
25
|
rcov
|
22
26
|
shoulda
|
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ require 'jeweler'
|
|
13
13
|
Jeweler::Tasks.new do |gem|
|
14
14
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
15
|
gem.name = "isbndb"
|
16
|
-
gem.homepage = "
|
16
|
+
gem.homepage = "https://github.com/sethvargo/isbndb"
|
17
17
|
gem.license = "MIT"
|
18
18
|
gem.summary = "This gem provides an easy solution for connecting to ISBNdb.com's API"
|
19
19
|
gem.description = "Ruby ISBNdb is a amazingly fast and accurate gem that reads ISBNdb.com's XML API and gives you incredible flexibilty with the results! The gem uses libxml-ruby, the fastest XML parser for Ruby, so you get blazing fast results every time. Additionally, the newest version of the gem also features caching, so developers minimize API-key usage."
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.4
|
data/isbndb.gemspec
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{isbndb}
|
8
|
+
s.version = "1.5.4"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Seth Vargo"]
|
12
|
+
s.date = %q{2011-04-21}
|
13
|
+
s.description = %q{Ruby ISBNdb is a amazingly fast and accurate gem that reads ISBNdb.com's XML API and gives you incredible flexibilty with the results! The gem uses libxml-ruby, the fastest XML parser for Ruby, so you get blazing fast results every time. Additionally, the newest version of the gem also features caching, so developers minimize API-key usage.}
|
14
|
+
s.email = %q{seth.vargo@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.markdown"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"ACKNOWLEDGEMENTS",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.markdown",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"isbndb.gemspec",
|
29
|
+
"lib/isbndb.rb",
|
30
|
+
"lib/isbndb/access_key_set.rb",
|
31
|
+
"lib/isbndb/exceptions.rb",
|
32
|
+
"lib/isbndb/result.rb",
|
33
|
+
"lib/isbndb/result_set.rb",
|
34
|
+
"test/helper.rb",
|
35
|
+
"test/test_isbndb.rb"
|
36
|
+
]
|
37
|
+
s.homepage = %q{https://github.com/sethvargo/isbndb}
|
38
|
+
s.licenses = ["MIT"]
|
39
|
+
s.require_paths = ["lib"]
|
40
|
+
s.rubygems_version = %q{1.7.2}
|
41
|
+
s.summary = %q{This gem provides an easy solution for connecting to ISBNdb.com's API}
|
42
|
+
s.test_files = [
|
43
|
+
"test/helper.rb",
|
44
|
+
"test/test_isbndb.rb"
|
45
|
+
]
|
46
|
+
|
47
|
+
if s.respond_to? :specification_version then
|
48
|
+
s.specification_version = 3
|
49
|
+
|
50
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
52
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
53
|
+
s.add_runtime_dependency(%q<libxml-ruby>, [">= 1.1.4"])
|
54
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
55
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
56
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
58
|
+
else
|
59
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
60
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
61
|
+
s.add_dependency(%q<libxml-ruby>, [">= 1.1.4"])
|
62
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
63
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
64
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
65
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
66
|
+
end
|
67
|
+
else
|
68
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
69
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
70
|
+
s.add_dependency(%q<libxml-ruby>, [">= 1.1.4"])
|
71
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
72
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
73
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
74
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
data/lib/isbndb.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# require dependencies
|
2
2
|
require 'libxml'
|
3
|
+
require 'active_support/inflector'
|
3
4
|
|
4
5
|
# private sub-classes
|
5
6
|
require 'isbndb/access_key_set'
|
@@ -62,7 +63,7 @@ module ISBNdb
|
|
62
63
|
|
63
64
|
if m.match(/find_(.+)_by_(.+)/)
|
64
65
|
split = m.split('_', 4)
|
65
|
-
collection, search_strs =
|
66
|
+
collection, search_strs = split[1].downcase.pluralize, [split.last]
|
66
67
|
|
67
68
|
# check and see if we are searching multiple fields
|
68
69
|
search_strs = search_strs.first.split('_and_') if(search_strs.first.match(/_and_/))
|
@@ -91,7 +92,7 @@ module ISBNdb
|
|
91
92
|
def make_request(collection, results, searches)
|
92
93
|
begin
|
93
94
|
uri = "#{BASE_URL}/#{collection}.xml?access_key=#{@access_key_set.current_key}&results=#{results.join(',')}&#{searches.join('&')}"
|
94
|
-
ISBNdb::ResultSet.new(uri,
|
95
|
+
ISBNdb::ResultSet.new(uri, collection.singularize.capitalize)
|
95
96
|
rescue ISBNdb::AccessKeyError
|
96
97
|
puts "Access Key Error (#{@access_key_set.current_key}) - You probably reached your limit! Trying the next key."
|
97
98
|
@access_key_set.next_key!
|
@@ -99,17 +100,17 @@ module ISBNdb
|
|
99
100
|
raise ISBNdb::AccessKeyError
|
100
101
|
end
|
101
102
|
end
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
# Add a few methods to the String class
|
108
|
+
class String
|
109
|
+
def is_plural?
|
110
|
+
self.downcase.pluralize == self.downcase
|
111
|
+
end
|
112
|
+
|
113
|
+
def is_singular?
|
114
|
+
!self.is_plural?
|
114
115
|
end
|
115
116
|
end
|
data/lib/isbndb/result.rb
CHANGED
@@ -23,7 +23,8 @@ module ISBNdb
|
|
23
23
|
# Pretty preint the Result including the number of singleton methods that exist. If
|
24
24
|
# you want the ACTUAL singleton methods, call @result.singleton_methods.
|
25
25
|
def to_s
|
26
|
-
|
26
|
+
@singleton_methods ||= []
|
27
|
+
"#<Result @num_singleton_methods=#{@singleton_methods.size}>"
|
27
28
|
end
|
28
29
|
|
29
30
|
private
|
@@ -32,26 +33,21 @@ module ISBNdb
|
|
32
33
|
# or content's value. Not to be outdone, it recursively iterates over all children too!
|
33
34
|
def build_result(top_node)
|
34
35
|
top_node.attributes.each do |attribute|
|
35
|
-
singleton.send(:define_method,
|
36
|
+
singleton.send(:define_method, method_name(attribute.name)) { attribute.value } unless attribute.value.strip.empty?
|
36
37
|
end
|
37
38
|
|
38
39
|
if top_node.children?
|
39
40
|
top_node.children.each { |child| build_result(child) }
|
40
41
|
else
|
41
|
-
singleton.send(:define_method,
|
42
|
+
singleton.send(:define_method, method_name(top_node.parent.name)) { top_node.content.strip.chomp(',') } unless top_node.content.strip.empty?
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
45
46
|
# This helper function reduces code redundancy and maintains consistency by formatting
|
46
47
|
# all method names the same. All method names are stripped of any trailing whitespaces,
|
47
48
|
# converted from CamelCase to under_score, and converted to a symbol
|
48
|
-
def
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
# This helper function converts CamelCase to under_score using a nice little regex :).
|
53
|
-
def camel_to_underscore(str)
|
54
|
-
str.gsub(/(.)([A-Z])/,'\1_\2').downcase
|
49
|
+
def method_name(name)
|
50
|
+
name.strip.underscore.to_sym
|
55
51
|
end
|
56
52
|
|
57
53
|
# We need a singleton reference to the current _instance_ so that we can dynamically define
|
data/test/test_isbndb.rb
CHANGED
@@ -6,58 +6,65 @@ class TestISBNdb < Test::Unit::TestCase
|
|
6
6
|
@query = ISBNdb::Query.new('KXWFXJIK')
|
7
7
|
end
|
8
8
|
|
9
|
-
should "fetch a book by ISBN" do
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
should "fetch a book by ISBN13" do
|
15
|
-
|
16
|
-
|
17
|
-
end
|
9
|
+
# should "fetch a book by ISBN" do
|
10
|
+
# @book = @query.find_book_by_isbn('1934356549').first
|
11
|
+
# assert_equal '1934356549', @book.isbn
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# should "fetch a book by ISBN13" do
|
15
|
+
# @book = @query.find_book_by_isbn('9781934356548').first
|
16
|
+
# assert_equal '9781934356548', @book.isbn13
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# should 'fetch books by title' do
|
20
|
+
# @books = @query.find_books_by_title('ruby')
|
21
|
+
# @books.each do |book|
|
22
|
+
# assert (book.title || "").downcase.include?('ruby') || (book.title_long || "").downcase.include?('ruby'), "#{book.title} did not contain 'ruby'"
|
23
|
+
# end
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# should 'get next_page and prev_page' do
|
27
|
+
# @books = @query.find_books_by_title('ruby')
|
28
|
+
# next_page = @books.next_page
|
29
|
+
# assert_equal @books.first.title, next_page.prev_page.first.title, 'Failed to get next_page'
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# should 'get keystats' do
|
33
|
+
# assert @query.keystats.is_a?(Hash), "#{@query.keystats} was not a Hash"
|
34
|
+
# assert @query.keystats[:requests] >= @query.keystats[:granted], "Number of requests (#{@query.keystats[:requests]}) was not greater than number of granted requests (#{@query.keystats[:granted]})"
|
35
|
+
# assert @query.keystats[:requests] > 0 && @query.keystats[:requests] < 500, 'Requests were not between 0 and 500'
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# should 'test access_key_set' do
|
39
|
+
# @query = ISBNdb::Query.new(['API-KEY-1', 'API-KEY-2', 'API-KEY-3'])
|
40
|
+
# @access_key_set = @query.access_key_set
|
41
|
+
# assert_equal 'API-KEY-1', @access_key_set.current_key
|
42
|
+
# assert_equal 'API-KEY-2', @access_key_set.next_key
|
43
|
+
# @access_key_set.next_key!
|
44
|
+
# assert_equal 'API-KEY-1', @access_key_set.prev_key
|
45
|
+
# @access_key_set.use_key('A-NEW-KEY')
|
46
|
+
# assert_equal 'A-NEW-KEY', @access_key_set.current_key
|
47
|
+
# @access_key_set.use_key('API-KEY-3')
|
48
|
+
# assert_equal 'API-KEY-3', @access_key_set.current_key
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# should 'raise exception for an invalid access key' do
|
52
|
+
# @invalid = ISBNdb::Query.new(['abc123foobar', '123anotherinvalidkey'])
|
53
|
+
# assert_raise ISBNdb::AccessKeyError, "#{@invalid} did not raise AccessKeyError" do
|
54
|
+
# @invalid.find_book_by_isbn('1934356549')
|
55
|
+
# end
|
56
|
+
# end
|
57
|
+
#
|
58
|
+
# should 'raise exception for an invalid uri' do
|
59
|
+
# assert_raise ISBNdb::InvalidURIError, "@query.find_invalid_by_unknown did not raise InvalidURIError" do
|
60
|
+
# @query.find_invalid_by_unknown('foobar')
|
61
|
+
# end
|
62
|
+
# end
|
18
63
|
|
19
|
-
should '
|
20
|
-
@books = @query.
|
64
|
+
should 'make sub-result sets' do
|
65
|
+
@books = @query.find(:collection => 'books', :where => { :title => 'vargo' }, :results => 'prices')
|
21
66
|
@books.each do |book|
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
should 'get next_page and prev_page' do
|
27
|
-
@books = @query.find_books_by_title('ruby')
|
28
|
-
next_page = @books.next_page
|
29
|
-
assert_equal @books.first.title, next_page.prev_page.first.title, 'Failed to get next_page'
|
30
|
-
end
|
31
|
-
|
32
|
-
should 'get keystats' do
|
33
|
-
assert @query.keystats.is_a?(Hash), "#{@query.keystats} was not a Hash"
|
34
|
-
assert @query.keystats[:requests] >= @query.keystats[:granted], "Number of requests (#{@query.keystats[:requests]}) was not greater than number of granted requests (#{@query.keystats[:granted]})"
|
35
|
-
assert @query.keystats[:requests] > 0 && @query.keystats[:requests] < 500, 'Requests were not between 0 and 500'
|
36
|
-
end
|
37
|
-
|
38
|
-
should 'test access_key_set' do
|
39
|
-
@query = ISBNdb::Query.new(['API-KEY-1', 'API-KEY-2', 'API-KEY-3'])
|
40
|
-
@access_key_set = @query.access_key_set
|
41
|
-
assert_equal 'API-KEY-1', @access_key_set.current_key
|
42
|
-
assert_equal 'API-KEY-2', @access_key_set.next_key
|
43
|
-
@access_key_set.next_key!
|
44
|
-
assert_equal 'API-KEY-1', @access_key_set.prev_key
|
45
|
-
@access_key_set.use_key('A-NEW-KEY')
|
46
|
-
assert_equal 'A-NEW-KEY', @access_key_set.current_key
|
47
|
-
@access_key_set.use_key('API-KEY-3')
|
48
|
-
assert_equal 'API-KEY-3', @access_key_set.current_key
|
49
|
-
end
|
50
|
-
|
51
|
-
should 'raise exception for an invalid access key' do
|
52
|
-
@invalid = ISBNdb::Query.new(['abc123foobar', '123anotherinvalidkey'])
|
53
|
-
assert_raise ISBNdb::AccessKeyError, "#{@invalid} did not raise AccessKeyError" do
|
54
|
-
@invalid.find_book_by_isbn('1934356549')
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
should 'raise exception for an invalid uri' do
|
59
|
-
assert_raise ISBNdb::InvalidURIError, "@query.find_invalid_by_unknown did not raise InvalidURIError" do
|
60
|
-
@query.find_invalid_by_unknown('foobar')
|
67
|
+
#puts book
|
61
68
|
end
|
62
69
|
end
|
63
70
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: isbndb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.5.
|
5
|
+
version: 1.5.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Seth Vargo
|
@@ -10,55 +10,54 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
13
|
+
date: 2011-04-21 00:00:00 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
16
|
+
name: activesupport
|
18
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
19
|
requirements:
|
21
20
|
- - ">="
|
22
21
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
22
|
+
version: "0"
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
25
|
version_requirements: *id001
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
27
|
+
name: i18n
|
29
28
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
30
|
requirements:
|
32
31
|
- - ">="
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: "0"
|
35
|
-
type: :
|
34
|
+
type: :runtime
|
36
35
|
prerelease: false
|
37
36
|
version_requirements: *id002
|
38
37
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
38
|
+
name: libxml-ruby
|
40
39
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
41
|
requirements:
|
43
|
-
- -
|
42
|
+
- - ">="
|
44
43
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
46
|
-
type: :
|
44
|
+
version: 1.1.4
|
45
|
+
type: :runtime
|
47
46
|
prerelease: false
|
48
47
|
version_requirements: *id003
|
49
48
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
49
|
+
name: shoulda
|
51
50
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
52
|
requirements:
|
54
|
-
- -
|
53
|
+
- - ">="
|
55
54
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
55
|
+
version: "0"
|
57
56
|
type: :development
|
58
57
|
prerelease: false
|
59
58
|
version_requirements: *id004
|
60
59
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
60
|
+
name: bundler
|
62
61
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
62
|
none: false
|
64
63
|
requirements:
|
@@ -68,6 +67,28 @@ dependencies:
|
|
68
67
|
type: :development
|
69
68
|
prerelease: false
|
70
69
|
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: jeweler
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rcov
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "0"
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *id007
|
71
92
|
description: Ruby ISBNdb is a amazingly fast and accurate gem that reads ISBNdb.com's XML API and gives you incredible flexibilty with the results! The gem uses libxml-ruby, the fastest XML parser for Ruby, so you get blazing fast results every time. Additionally, the newest version of the gem also features caching, so developers minimize API-key usage.
|
72
93
|
email: seth.vargo@gmail.com
|
73
94
|
executables: []
|
@@ -86,6 +107,7 @@ files:
|
|
86
107
|
- README.markdown
|
87
108
|
- Rakefile
|
88
109
|
- VERSION
|
110
|
+
- isbndb.gemspec
|
89
111
|
- lib/isbndb.rb
|
90
112
|
- lib/isbndb/access_key_set.rb
|
91
113
|
- lib/isbndb/exceptions.rb
|
@@ -93,8 +115,7 @@ files:
|
|
93
115
|
- lib/isbndb/result_set.rb
|
94
116
|
- test/helper.rb
|
95
117
|
- test/test_isbndb.rb
|
96
|
-
|
97
|
-
homepage: http://github.com/svargo/isbndb
|
118
|
+
homepage: https://github.com/sethvargo/isbndb
|
98
119
|
licenses:
|
99
120
|
- MIT
|
100
121
|
post_install_message:
|
@@ -107,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
128
|
requirements:
|
108
129
|
- - ">="
|
109
130
|
- !ruby/object:Gem::Version
|
110
|
-
hash:
|
131
|
+
hash: 4519594731805575555
|
111
132
|
segments:
|
112
133
|
- 0
|
113
134
|
version: "0"
|
@@ -120,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
141
|
requirements: []
|
121
142
|
|
122
143
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.
|
144
|
+
rubygems_version: 1.7.2
|
124
145
|
signing_key:
|
125
146
|
specification_version: 3
|
126
147
|
summary: This gem provides an easy solution for connecting to ISBNdb.com's API
|