remote_book 0.1.4 → 0.1.5
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/VERSION +1 -1
- data/lib/remote_book.rb +0 -2
- data/lib/remote_book/amazon.rb +12 -6
- data/lib/remote_book/barnes_and_noble.rb +3 -0
- data/lib/remote_book/base.rb +2 -0
- data/lib/remote_book/version.rb +3 -0
- data/remote_book.gemspec +2 -2
- data/spec/lib/amazon_spec.rb +1 -0
- data/spec/spec_helper.rb +1 -1
- metadata +5 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
data/lib/remote_book.rb
CHANGED
@@ -9,8 +9,6 @@ require "remote_book/amazon"
|
|
9
9
|
require "remote_book/barnes_and_noble"
|
10
10
|
|
11
11
|
module RemoteBook
|
12
|
-
VERSION = File.read(File.dirname(__FILE__) + "/../VERSION").chomp
|
13
|
-
|
14
12
|
def self.get_url(url, options = {:read_timeout => 2, :open_timeout => 2})
|
15
13
|
uri = URI.parse(url)
|
16
14
|
|
data/lib/remote_book/amazon.rb
CHANGED
@@ -1,22 +1,28 @@
|
|
1
1
|
module RemoteBook
|
2
|
+
class AmazonError < RemoteBook::RemoteBookError #:nodoc:
|
3
|
+
end
|
4
|
+
|
2
5
|
class Amazon < RemoteBook::Base
|
3
6
|
# FIXME: failed digest support should raise exception.
|
4
7
|
# mac os 10.5 does not ship with SHA256 support built into ruby, 10.6 does.
|
5
8
|
DIGEST_SUPPORT = ::OpenSSL::Digest.constants.include?('SHA256') || ::OpenSSL::Digest.constants.include?(:SHA256)
|
6
9
|
DIGEST = ::OpenSSL::Digest::Digest.new('sha256') if DIGEST_SUPPORT
|
7
10
|
|
8
|
-
attr_accessor :large_image, :medium_image, :small_image, :authors, :title
|
11
|
+
attr_accessor :large_image, :medium_image, :small_image, :authors, :title, :raw_response
|
9
12
|
|
10
13
|
def self.find(options)
|
14
|
+
raise AmazonError.new("RemoteBook::Amazon.associate_keys requires :key_id") unless associate_keys.has_key?(:key_id)
|
15
|
+
raise AmazonError.new("RemoteBook::Amazon.associate_keys requires :associates_id") unless associate_keys.has_key?(:associates_id)
|
16
|
+
raise AmazonError.new("RemoteBook::Amazon.associate_keys requires :secret_key") unless associate_keys.has_key?(:secret_key)
|
11
17
|
a = new
|
12
18
|
# unless DIGEST_SUPPORT raise "no digest sup"
|
13
19
|
if options[:isbn]
|
14
20
|
req = build_isbn_lookup_query(options[:isbn])
|
15
|
-
|
21
|
+
a.raw_response = RemoteBook.get_url(req)
|
16
22
|
|
17
|
-
if
|
18
|
-
xml_doc = Nokogiri.XML(
|
19
|
-
else
|
23
|
+
if a.raw_response.respond_to?(:code) && "200" == a.raw_response.code
|
24
|
+
xml_doc = Nokogiri.XML(a.raw_response.body)
|
25
|
+
else
|
20
26
|
return false
|
21
27
|
end
|
22
28
|
|
@@ -28,7 +34,7 @@ module RemoteBook
|
|
28
34
|
a.medium_image = xml_doc.xpath("//xmlns:Items/xmlns:Item/xmlns:MediumImage/xmlns:URL").inner_text
|
29
35
|
end
|
30
36
|
if xml_doc.xpath("//xmlns:Items/xmlns:Item/xmlns:SmallImage/xmlns:URL")
|
31
|
-
a.small_image = xml_doc.xpath("//xmlns:Items/xmlns:Item/xmlns:SmallImage/xmlns:URL")
|
37
|
+
a.small_image = xml_doc.xpath("//xmlns:Items/xmlns:Item/xmlns:SmallImage/xmlns:URL").inner_text
|
32
38
|
end
|
33
39
|
a.title = xml_doc.xpath("//xmlns:Items/xmlns:Item/xmlns:ItemAttributes/xmlns:Title").inner_text
|
34
40
|
a.authors = []
|
@@ -1,4 +1,7 @@
|
|
1
1
|
module RemoteBook
|
2
|
+
class BarnesAndNobleError < RemoteBook::RemoteBookError #:nodoc:
|
3
|
+
end
|
4
|
+
|
2
5
|
class BarnesAndNoble < RemoteBook::Base
|
3
6
|
ISBN_SEARCH_BASE_URI = "http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?ISBSRC=Y&ISBN="
|
4
7
|
LINK_SHARE_DEEP_LINK_BASE = "http://getdeeplink.linksynergy.com/createcustomlink.shtml"
|
data/lib/remote_book/base.rb
CHANGED
data/remote_book.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "remote_book"
|
3
|
+
require "remote_book/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "remote_book"
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.homepage = "https://github.com/sfaxon/remote_book"
|
11
11
|
s.summary = %q{Pull book affiliate links and images from Amazon, Barns & Noble}
|
12
12
|
s.description = %q{Pull book affiliate links and images from Amazon, Barns & Noble}
|
13
|
-
s.date = %q{2011-08-
|
13
|
+
s.date = %q{2011-08-22}
|
14
14
|
|
15
15
|
s.rubyforge_project = "remote_book"
|
16
16
|
|
data/spec/lib/amazon_spec.rb
CHANGED
@@ -10,6 +10,7 @@ describe RemoteBook::Amazon do
|
|
10
10
|
FakeWeb.register_uri(:get, %r|http://ecs\.amazonaws\.com/(.*)|, :body => load_file("amazon_1433506254.xml"))
|
11
11
|
a = RemoteBook::Amazon.find_by_isbn("1433506254")
|
12
12
|
a.large_image.should == "http://ecx.images-amazon.com/images/I/41xMfBAsMnL.jpg"
|
13
|
+
a.medium_image.should == "http://ecx.images-amazon.com/images/I/41xMfBAsMnL._SL160_.jpg"
|
13
14
|
end
|
14
15
|
|
15
16
|
it "find_by_isbn should return false when error code returned by web service" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remote_book
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08-
|
12
|
+
date: 2011-08-22 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &70156304442700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70156304442700
|
25
25
|
description: Pull book affiliate links and images from Amazon, Barns & Noble
|
26
26
|
email:
|
27
27
|
- seth.faxon@gmail.com
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/remote_book/amazon.rb
|
40
40
|
- lib/remote_book/barnes_and_noble.rb
|
41
41
|
- lib/remote_book/base.rb
|
42
|
+
- lib/remote_book/version.rb
|
42
43
|
- remote_book.gemspec
|
43
44
|
- spec/fixtures/amazon_1433506254.xml
|
44
45
|
- spec/lib/amazon_spec.rb
|