remote_book 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|