gbip 0.8.0 → 0.8.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/CHANGELOG +6 -2
- data/Rakefile +1 -1
- data/lib/gbip/pos.rb +6 -9
- data/specs/pos_class_spec.rb +13 -2
- data/specs/responses/multiple_response.txt +1 -0
- metadata +8 -7
data/CHANGELOG
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
-
v0.8.
|
1
|
+
v0.8.1 (11th June 2009)
|
2
|
+
- Fix parsing of API responses that contain multiple results
|
3
|
+
- small update to specs
|
4
|
+
|
5
|
+
v0.8.0 (7th November 2008)
|
2
6
|
- Add checks for additional error codes, and raise an appropriate error
|
3
7
|
- overhauled specs
|
4
8
|
|
5
|
-
v0.7.1 (14th October)
|
9
|
+
v0.7.1 (14th October 2008)
|
6
10
|
- Correctly parse API responses that contain a # in their data
|
7
11
|
- Use ISBN13s in queries. No change to user API (we accept ISBN10s or ISBN13s)
|
8
12
|
|
data/Rakefile
CHANGED
data/lib/gbip/pos.rb
CHANGED
@@ -26,6 +26,7 @@ module GBIP
|
|
26
26
|
# Supported options:
|
27
27
|
# :markets => only search the specified markets. comma sperated list
|
28
28
|
# :timeout => amount of time in seconds to wait for a reponse from the server before timing out. Defaults to 10.
|
29
|
+
#
|
29
30
|
def find(type, isbn, options = {})
|
30
31
|
case type
|
31
32
|
when :first then default_return = nil
|
@@ -88,15 +89,11 @@ module GBIP
|
|
88
89
|
body.shift
|
89
90
|
end
|
90
91
|
|
91
|
-
titles_arr = [
|
92
|
-
body.
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
titles_arr.last << element
|
97
|
-
end
|
98
|
-
#titles_arr << arr.split("\t")
|
99
|
-
#titles_arr[-1] = titles_arr.last[1,titles_arr.last.size-1]
|
92
|
+
titles_arr = []
|
93
|
+
while body.size > 0
|
94
|
+
warehouse_count = body[21].to_i
|
95
|
+
extract_count = 22 + (5 * warehouse_count)
|
96
|
+
titles_arr << body.slice!(0, extract_count)
|
100
97
|
end
|
101
98
|
|
102
99
|
if titles_arr.size == 0
|
data/specs/pos_class_spec.rb
CHANGED
@@ -2,11 +2,10 @@ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
|
2
2
|
|
3
3
|
require 'gbip'
|
4
4
|
require File.dirname(__FILE__) + "/spec_helper"
|
5
|
-
require File.dirname(__FILE__) + "/timeout_tcpsocket"
|
6
5
|
|
7
6
|
context "A new POS object" do
|
8
7
|
|
9
|
-
|
8
|
+
before(:all) do
|
10
9
|
@username = "user"
|
11
10
|
@password = "pass"
|
12
11
|
@isbn10 = "1741146712"
|
@@ -230,6 +229,18 @@ context "A new POS object" do
|
|
230
229
|
result.should be_empty
|
231
230
|
end
|
232
231
|
|
232
|
+
specify "should return an Array with multiple items when a query returns multiple matches" do
|
233
|
+
# Mock TCPSocket to return a valid response with no matches
|
234
|
+
data = File.read(File.dirname(__FILE__) + "/responses/multiple_response.txt").strip
|
235
|
+
socket = TCPSocket.stub_instance(:print => true, :close => true, :gets => data)
|
236
|
+
TCPSocket.stub_method(:new => socket)
|
237
|
+
|
238
|
+
pos = GBIP::POS.new(@username, @password)
|
239
|
+
result = pos.find(:all, @isbn13)
|
240
|
+
result.should be_a_kind_of(Array)
|
241
|
+
result.size.should eql(3)
|
242
|
+
end
|
243
|
+
|
233
244
|
specify "should return an empty array when any object is supplied as an ISBN when searching for :all" do
|
234
245
|
pos = GBIP::POS.new(@username, @password)
|
235
246
|
result = pos.find(:all, nil)
|
@@ -0,0 +1 @@
|
|
1
|
+
3 rainbowbook 3 # 57073276 1 AUS Hallucinogens and Your Neurons:The Incredibly Disgusting Story 978-0-8239-3391-4 Library Binding Active Record Cefrey, Holly Rosen Publishing Group, Incorporated, The 032000 29.95 UNITED STATES 22896 $ DRUG ABUSE_JUVENILE LITERATURE JUVENILE NONFICTION / Health & Daily Living / Substance Abuse PERSONAL & SOCIAL ISSUES: DRUGS & ADDICTION (CHILDREN'S/YA) ING 1 Ingram Book Company, La Vergne, TN Available for order 0 06/10/2009# 51552044 1 USA Hallucinogens and Your Neurons:The Incredibly Disgusting Story 978-0-8239-3391-4 Library Binding Active Record Cefrey, Holly Rosen Publishing Group, Incorporated, The 012005 25.25 UNITED STATES 22896 $ DRUG ABUSE_JUVENILE LITERATURE JUVENILE NONFICTION / Health & Daily Living / Substance Abuse DRUG ABUSE PERSONAL & SOCIAL ISSUES: DRUGS & ADDICTION (CHILDREN'S/YA) ING 1 Ingram Book Company, La Vergne, TN Available for order 0 06/10/2009# 53231792 1 CAN Hallucinogens and Your Neurons:The Incredibly Disgusting Story 978-0-8239-3391-4 Library Binding Active Record Cefrey, Holly Rosen Publishing Group, Incorporated, The 2000 28.45 UNITED STATES 22896 $ DRUG ABUSE_JUVENILE LITERATURE JUVENILE NONFICTION / Health & Daily Living / Substance Abuse PERSONAL & SOCIAL ISSUES: DRUGS & ADDICTION (CHILDREN'S/YA) ING 1 Ingram Book Company, La Vergne, TN Available for order 0 06/10/2009
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gbip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Healy
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-06-11 00:00:00 +10:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "1.0"
|
24
24
|
version:
|
25
|
-
description: gbip is a small library to interact with the
|
25
|
+
description: " gbip is a small library to interact with the\n globalbooksinprint.com API. The API is based\n on raw TCP sockets.\n"
|
26
26
|
email: jimmy@deefa.com
|
27
27
|
executables: []
|
28
28
|
|
@@ -36,12 +36,10 @@ extra_rdoc_files:
|
|
36
36
|
files:
|
37
37
|
- examples/gbip.rb
|
38
38
|
- lib/gbip.rb
|
39
|
-
- lib/gbip
|
40
39
|
- lib/gbip/pos.rb
|
41
40
|
- lib/gbip/title.rb
|
42
41
|
- lib/gbip/warehouse.rb
|
43
42
|
- specs/pos_class_spec.rb
|
44
|
-
- specs/responses
|
45
43
|
- specs/responses/invalid_login.txt
|
46
44
|
- specs/responses/no_result.txt
|
47
45
|
- specs/responses/no_warehouses.txt
|
@@ -51,6 +49,7 @@ files:
|
|
51
49
|
- specs/responses/invalid_bad_data.txt
|
52
50
|
- specs/responses/invalid_request.txt
|
53
51
|
- specs/responses/invalid_system_unavailable.txt
|
52
|
+
- specs/responses/multiple_response.txt
|
54
53
|
- specs/spec_helper.rb
|
55
54
|
- Rakefile
|
56
55
|
- CHANGELOG
|
@@ -59,6 +58,8 @@ files:
|
|
59
58
|
- LICENSE
|
60
59
|
has_rdoc: true
|
61
60
|
homepage: http://rbook.rubyforge.org/
|
61
|
+
licenses: []
|
62
|
+
|
62
63
|
post_install_message:
|
63
64
|
rdoc_options:
|
64
65
|
- --title
|
@@ -83,9 +84,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
84
|
requirements: []
|
84
85
|
|
85
86
|
rubyforge_project: rbook
|
86
|
-
rubygems_version: 1.
|
87
|
+
rubygems_version: 1.3.3
|
87
88
|
signing_key:
|
88
|
-
specification_version:
|
89
|
+
specification_version: 3
|
89
90
|
summary: A library for access the globalbooksinprint.com API
|
90
91
|
test_files:
|
91
92
|
- specs/pos_class_spec.rb
|