barnie 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/.rspec +1 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +4 -0
- data/Rakefile +12 -0
- data/barnie.gemspec +33 -0
- data/benchmarks/bm_helper.rb +5 -0
- data/benchmarks/stress_test.rb +28 -0
- data/lib/barnie.rb +16 -0
- data/lib/barnie/client.rb +57 -0
- data/lib/barnie/error.rb +7 -0
- data/lib/barnie/helpers.rb +56 -0
- data/lib/barnie/version.rb +3 -0
- data/rvmrc.example +2 -0
- data/spec/acceptance/availability_spec.rb +43 -0
- data/spec/acceptance/smokescreen_spec.rb +18 -0
- data/spec/fixtures/asins.txt +10000 -0
- data/spec/fixtures/barnie_availability.yml +507 -0
- data/spec/fixtures/barnie_client.yml +347 -0
- data/spec/fixtures/barnie_helpers.yml +231 -0
- data/spec/fixtures/barnie_smokescreen.yml +112 -0
- data/spec/fixtures/bug.yml +248 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/support/isbns.rb +12 -0
- data/spec/support/show_me_the_page.rb +15 -0
- data/spec/support/vcr.rb +8 -0
- data/spec/unit/barnie/client_spec.rb +122 -0
- data/spec/unit/barnie/helpers_spec.rb +100 -0
- data/spec/unit/barnie_spec.rb +9 -0
- metadata +187 -0
@@ -0,0 +1,112 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://productsearch.barnesandnoble.com:80/search/results.aspx?ISBNLIST=9780486272351
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
user-agent:
|
9
|
+
- iPhone company details
|
10
|
+
connection:
|
11
|
+
- keep-alive
|
12
|
+
keep-alive:
|
13
|
+
- "300"
|
14
|
+
accept-encoding:
|
15
|
+
- gzip,identity
|
16
|
+
accept-language:
|
17
|
+
- en-us,en;q=0.5
|
18
|
+
host:
|
19
|
+
- productsearch.barnesandnoble.com
|
20
|
+
accept-charset:
|
21
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
22
|
+
response: !ruby/struct:VCR::Response
|
23
|
+
status: !ruby/struct:VCR::ResponseStatus
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
server:
|
28
|
+
- Microsoft-IIS/6.0
|
29
|
+
p3p:
|
30
|
+
- CP="CAO DSP COR ADM DEV TAI PSA IVDo CONo HIS TELo DEL SAMo UNRo LEG PRE"
|
31
|
+
x-powered-by:
|
32
|
+
- ASP.NET
|
33
|
+
x-aspnet-version:
|
34
|
+
- 2.0.50727
|
35
|
+
cache-control:
|
36
|
+
- private, no-store
|
37
|
+
content-type:
|
38
|
+
- text/html; charset=utf-8
|
39
|
+
vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
content-encoding:
|
42
|
+
- gzip
|
43
|
+
content-length:
|
44
|
+
- "2241"
|
45
|
+
date:
|
46
|
+
- Thu, 25 Nov 2010 17:33:48 GMT
|
47
|
+
connection:
|
48
|
+
- keep-alive
|
49
|
+
set-cookie:
|
50
|
+
- bnMobile=Y&device=Y&type=iphone&state=persist; domain=.barnesandnoble.com; path=/
|
51
|
+
- bnMobileCMS=cjsval=1853641&cjvf=7; domain=barnesandnoble.com; path=/
|
52
|
+
- bnMobileCMV=18536416174267030322489; domain=barnesandnoble.com; expires=Wed, 25-Nov-2020 17:33:48 GMT; path=/
|
53
|
+
- csxslt=no; domain=.barnesandnoble.com; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/
|
54
|
+
- datacenter=ny;path=/;domain=barnesandnoble.com;
|
55
|
+
- pds%5Flife=d=AQAG6sM%2bYn8kc4QZClj79WGgnVa4RHyn%2bbpllvJEhYib82J1eX%2b9QTPSwzuPJRVtvI2cT8JlzOeeXcXzLMKs32r6&v=5; domain=.barnesandnoble.com; expires=Tue, 24-Nov-2015 17:33:48 GMT; path=/
|
56
|
+
- pds%5Fsess=d=AQBiC8fq7R%2fvOVHxBT33ZcSsCUlD2Luz89Tu19Z8n7uyJSYZLQrkXqIzO0RrGcovnbDOvbad%2fkivk9G135IVxygOAbZnXUbMu0jmwb3m1BCZxnBm5nDfQInapQLFgk3DK8U%3d&v=5; domain=.barnesandnoble.com; path=/
|
57
|
+
- pds%5Fvcart%5Fsess=d=3RZ0LSAAg0JdsHLzjc8ESPV8pvEXQBupqSJyjQ%2br5vUfuHLNWgAEAAIAaQAAAAUA&v=5; domain=.barnesandnoble.com; path=/
|
58
|
+
- userid=IV5wjTHNV9; domain=.barnesandnoble.com; expires=Wed, 25-Nov-2015 17:33:48 GMT; path=/
|
59
|
+
- xx4tyNo=mM6wjTHNU9; domain=.barnesandnoble.com; path=/
|
60
|
+
body: !binary |
|
61
|
+
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
|
111
|
+
|
112
|
+
http_version: "1.1"
|
@@ -0,0 +1,248 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://productsearch.barnesandnoble.com:80/search/results.aspx?ISBNLIST=9780073383224,9780073383231,9780073383682,9780073383699,9780073383705,9780073383743,9780073383750,9780073383774,9780073383781,9780073383798,9780073383804,9780073383811,9780073383835,9780073383842,9780073383859,9780073383941,9780073383972,9780073383996,9780073384009,9780073384016,9780073384085,9780073384092,9780073384108,9780073384115,9780073384122,9780073384160,9780073384177,9780073384184,9780073384191,9780073384207,9780073384214,9780073384221,9780073384313,9780073384580,9780073384597,9780073384610,9780073384627,9780073384894,9780073384986,9780073384993,9780073385006,9780073385013,9780073385020,9780073385037,9780073385044,9780073385051,9780073385075,9780073385082,9780073385099,9780073385105
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- "*/*"
|
10
|
+
user-agent:
|
11
|
+
- iPhone company details
|
12
|
+
connection:
|
13
|
+
- keep-alive
|
14
|
+
keep-alive:
|
15
|
+
- "300"
|
16
|
+
accept-encoding:
|
17
|
+
- gzip,identity
|
18
|
+
accept-language:
|
19
|
+
- en-us,en;q=0.5
|
20
|
+
host:
|
21
|
+
- productsearch.barnesandnoble.com
|
22
|
+
accept-charset:
|
23
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
24
|
+
response: !ruby/struct:VCR::Response
|
25
|
+
status: !ruby/struct:VCR::ResponseStatus
|
26
|
+
code: 200
|
27
|
+
message: OK
|
28
|
+
headers:
|
29
|
+
server:
|
30
|
+
- Microsoft-IIS/6.0
|
31
|
+
p3p:
|
32
|
+
- CP="CAO DSP COR ADM DEV TAI PSA IVDo CONo HIS TELo DEL SAMo UNRo LEG PRE"
|
33
|
+
x-powered-by:
|
34
|
+
- ASP.NET
|
35
|
+
x-aspnet-version:
|
36
|
+
- 2.0.50727
|
37
|
+
cache-control:
|
38
|
+
- private, no-store
|
39
|
+
content-type:
|
40
|
+
- text/html; charset=utf-8
|
41
|
+
vary:
|
42
|
+
- Accept-Encoding
|
43
|
+
content-encoding:
|
44
|
+
- gzip
|
45
|
+
content-length:
|
46
|
+
- "8296"
|
47
|
+
date:
|
48
|
+
- Fri, 01 Oct 2010 10:34:04 GMT
|
49
|
+
connection:
|
50
|
+
- keep-alive
|
51
|
+
set-cookie:
|
52
|
+
- xx4tyNo=ic1XyQxMz2; domain=.barnesandnoble.com; path=/
|
53
|
+
- usertrackid=Nl2XyQxM03; domain=.barnesandnoble.com; expires=Thu, 01-Oct-2015 10:34:04 GMT; path=/
|
54
|
+
- bnMobile=Y&device=Y&type=iphone&state=persist; domain=.barnesandnoble.com; path=/
|
55
|
+
- pds%5Flife=d=AQD5b2tIIRRvYN%2bzItLENHoW793heH0iWKWS0GOsDXJZ4f5Fcyu1HWM7BSz7WONYhlN1n04Pp9T9RjY7nNk%2bHn3d&v=5; domain=.barnesandnoble.com; expires=Wed, 30-Sep-2015 10:34:04 GMT; path=/
|
56
|
+
- pds%5Fsess=d=AQBxX15yOn4S20g8gdmPAidEDDNk34n5D83X%2bqS0Dl%2f0nE0Fl79TvKuVaJYJdBICSGuBY93I6prejyJ0wsiHKqOGwQhlYFIDygx1Wlj4QcvAzOJkaciPjoZvpAMvctFzEG4%3d&v=5; domain=.barnesandnoble.com; path=/
|
57
|
+
- pds%5Fvcart%5Fsess=d=UpjxdiAAqQmcvZA9UHoqLDG1LmiITxaQ95G4FAwDASYOtqqWWQAEAAIAaQAAAAQA&v=5; domain=.barnesandnoble.com; path=/
|
58
|
+
- bnMobileCMV=47028635182914599185361; domain=barnesandnoble.com; expires=Thu, 01-Oct-2020 10:34:04 GMT; path=/
|
59
|
+
- bnMobileCMS=cjsval=4702863&cjvf=7; domain=barnesandnoble.com; path=/
|
60
|
+
- datacenter=nj;path=/;domain=barnesandnoble.com;
|
61
|
+
body: !binary |
|
62
|
+
H4sIAAAAAAAAAO1d63LjNrL+vVu174BVbW6lIcWrSDqWUrLHc8naHh/LsznZ
|
63
|
+
P1MUBUnMUKTCiz3a2ofJ3/MaebLTDYAyKd8kynQcWVWJh4BIsNFEf41udAP7
|
64
|
+
f3/94fDi57MjMkmnATn7eHD8/pA0pFbrw0mv1Xp98Zr877uLk2NyEg38gBJV
|
65
|
+
1lqto9MGaUzSdLbXal1dXcnRjIZT9rsbBL4belSO4nErpd4EW2h9wbYlfoeq
|
66
|
+
ycN02OjuYx38pe6w+7e/ErJ/cnTRI9ioRH/N/MtO4zAKUxqm0sV8RhvE46VO
|
67
|
+
I6Vf0hY+/D3xJm6c0LSTpSNJbTd4O6mfBrR74MYhTX7/7Wt3Ovv+999Oo0FA
|
68
|
+
ZS+aEon0AuhnHA0zLyV96sbeZI/st/hj+1OauiR0p7TT+EznV1E8TArv5q2S
|
69
|
+
r8lD7TVa3f3ADz+TmAadRpLOA5pMKE0bJIXeiE54CbQ9iemokzPTn7pjmsgD
|
70
|
+
9ho3HIb5a1qzmCZRFns0aXE+4tPi8pM7vJSxse5+4sX+LC2+5Bf30uW1DZLE
|
71
|
+
XqVX/VJ60y/4ohZvs8SwS59ezaI4LTDsyh+mk86QXvoelVjhFfFDP/XdQEo8
|
72
|
+
N6AdVVZekan7xZ9m02JVltCYlV2gqwMVoyieuqk0pDCsUj8KO2EkvniBhOWb
|
73
|
+
SuMmoLNJFFLx4H6Ljb39QTScd/eH/iXxh50G9lPCH2jcIG7gj8NOw4Pnodjd
|
74
|
+
d8tfC4f+LfwTTPPDIf0iu8kMHvSnY2isMIBwVPJBBCOA+uMJ/GZoDcL51VAd
|
75
|
+
uB7A4KNxp6FU/3Dj0ZfW1E3ST0E0juSxP8Iv58L/0F1kQanXvyZs8MItvMPd
|
76
|
+
W3+WkMUSjAMU8yH/AvANsJbAh5hEcP8sSmAQuPwzNVogzt5n/nTxGnnzBZkT
|
77
|
+
zrJ8yE784ZDCV+NfcwY9bZBLN8ig4MVRksy4nC0ovedZuHPxbBb6lygdMzck
|
78
|
+
XuAmSacB44oGja4QWBjP8BvcAYMExFjcw0tsGPFGvUkEAxlaimZYnTcPqJcT
|
79
|
+
Bt+KPUSH3QIuJPst/oRgF2NZuY1BFH1udA/g7wo3U7wbxJCueP+lP6Qw6F//
|
80
|
+
67UYegdBJsXu/OEnp1nie43uCf6zQifceOz6YQPhFy/IivR99gFmu4cTPxjG
|
81
|
+
NPwmWfU5RDjOuAtxtcJDUQQi+TGhQ8GLDzCCohF8Kj9MV2CIOwZST9yx+x8f
|
82
|
+
BPDhBxDSwiEoKuhgfvnwUxP4XO+iKRU0vvVHK9CWRnN4ywX8zR+DUbvq8Bjj
|
83
|
+
vY3uv/B61Qf9ZAAf+33/4HRxL0gSEwCOHkzzAQ9gZhDvBXSUfi/gbk+fffm+
|
84
|
+
IZDoNsF8E8ULqeRSLn7/NaPxXEqmIHRFbZqLKPsZpND/DxR0wE7QLcD1MYNV
|
85
|
+
RWkstTbI0jQK30/HeVsMXhdAbOrX+IyNMRB/G22GyOPo09Un7VOEQ+GzQOVB
|
86
|
+
TBiToP/AJWQMIupdTFwwTvzNAZsXUdvkRKvXOkVQ38i77kUxBcSOfS8p92fo
|
87
|
+
pq5c+JV1hQbZ1A/dlP6QgkpQ2fjy/I6jaLqq6iYrX4Zah/eTFZO0o2q26WiO
|
88
|
+
ZhiWoot71I4hqzJvgXqd9/0Pkg13Sbxm5nc4Jn+lKec0yYI02eOj2Rt3Tj4c
|
89
|
+
vD8+2uM3kH7mAWeTURbw19EO/zfumApv61LtiAutg537Sne/0kbwX0mP3PLl
|
90
|
+
4JZEUDGKORVMXX2lj3C0H7/vX3ylDx3LVhRLF6/QO4qiiE5cfnLV62IW1Ph2
|
91
|
+
3dY1zfhK8wplXS2V27ZWLjtOqWwpZrls6OWyqZTLVvl9ll1+n+XYpbKtlO+3
|
92
|
+
1fL9tl5+v22U6YXRUSo7Rvl5xyrf7zjtYtlQFKdcVpd+t81y2Sm1Z6iKXS6r
|
93
|
+
5ftVben+tlIuW1a5bBvlslPqj6Ep5fs1tXy/ppXv19XS9zJMu/x+0ym311bL
|
94
|
+
v7e18u+2U36fY5f55Til95mK0i6X1aXfNaVc1q1y2TDKZVMtly2zXC6PZ1Mp
|
95
|
+
j2dTVTgexSMu/sHsTkz5hYY5mP2SAbABTml2WzdVW3NUYJyj2qbezu9Iru8Q
|
96
|
+
NZejjtVYmimjRSFMk7w+wZkz2A4wZVhMmbNgMc9Eo2mhZcFwBI2YxlE4Bl0+
|
97
|
+
Iydu6k1QG4u6/RbcULz5vzdqFpZKS0y7iyjyw/nr884po7//76OOyrGyf37R
|
98
|
+
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
|
246
|
+
8M8knQbd/wc1bmfMnzIBAA==
|
247
|
+
|
248
|
+
http_version: "1.1"
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require "launchy"
|
2
|
+
|
3
|
+
class Mechanize
|
4
|
+
def show_me_the_page
|
5
|
+
file_path = ::File.expand_path("../m.#{Time.now.to_i}.html", __FILE__)
|
6
|
+
|
7
|
+
file = ::File.new(file_path, "w")
|
8
|
+
file.write(current_page.body)
|
9
|
+
file.close
|
10
|
+
|
11
|
+
Launchy::Browser.run("file://#{file_path}")
|
12
|
+
|
13
|
+
system("sleep 2 && rm #{file_path} &")
|
14
|
+
end
|
15
|
+
end
|
data/spec/support/vcr.rb
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Barnie
|
4
|
+
describe Client do
|
5
|
+
let (:client) do
|
6
|
+
Barnie.new("company details")
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:isbns) do
|
10
|
+
[
|
11
|
+
"9780142404447", "9780080433042", "9780001053335", "9781902741154",
|
12
|
+
"9780001053373", "9781902084008", "9781903098189", "9780001053380",
|
13
|
+
"9780195177312", "9780001053397", "9780201549768", "9780141310763",
|
14
|
+
"9780142404430", "9780080433028", "9780080448527", "9780001053618",
|
15
|
+
"9781903098196", "9780152022624", "9781903098202", "9780001053656",
|
16
|
+
"9780203940174", "9780152008680", "9780080426648", "9780001053731",
|
17
|
+
"9781902741109", "9780195366877", "9782715219359", "9780001053748",
|
18
|
+
"9781905334186", "9780001054097", "9780152022617", "9780080441993",
|
19
|
+
"9780001054608", "9780203940112", "9781905340309", "9780152008673",
|
20
|
+
"9780080426631", "9780001054646", "9781905340279", "9781902934006",
|
21
|
+
"9780001054677", "9780001054691", "9781920888855", "9781920888862",
|
22
|
+
"9780152022600", "9780001054721", "9780203939994", "9780195366860",
|
23
|
+
"9780152008666", "9781902932255"
|
24
|
+
]
|
25
|
+
end
|
26
|
+
|
27
|
+
before do
|
28
|
+
VCR.insert_cassette('barnie_client')
|
29
|
+
client.isbns = isbns
|
30
|
+
end
|
31
|
+
|
32
|
+
after do
|
33
|
+
VCR.eject_cassette
|
34
|
+
end
|
35
|
+
|
36
|
+
it "includes Helpers" do
|
37
|
+
Client.ancestors.should include Helpers
|
38
|
+
end
|
39
|
+
|
40
|
+
it "requires user agent" do
|
41
|
+
lambda { Barnie::Client.new }.should raise_error /wrong number of arguments/
|
42
|
+
end
|
43
|
+
|
44
|
+
it "sets up a mechanize agent" do
|
45
|
+
client.instance_variable_get(:@agent).should be_an_instance_of Mechanize
|
46
|
+
end
|
47
|
+
|
48
|
+
it "sets ISBNs to query" do
|
49
|
+
client.isbns.should == isbns
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns the URI with which to query Barnes & Noble" do
|
53
|
+
client.send(:uri).should be_an_instance_of URI::HTTP
|
54
|
+
end
|
55
|
+
|
56
|
+
it "performs a request" do
|
57
|
+
page = client.request
|
58
|
+
page.should be_an_instance_of Mechanize::Page
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
describe "#books" do
|
63
|
+
let(:books) do
|
64
|
+
client.books
|
65
|
+
end
|
66
|
+
|
67
|
+
it "are an array of hashes" do
|
68
|
+
books.should be_an_instance_of Array
|
69
|
+
books.each { |book| book.should be_an_instance_of Hash }
|
70
|
+
end
|
71
|
+
|
72
|
+
it "must have a title and ISBN" do
|
73
|
+
books.each do |book|
|
74
|
+
book[:title].should_not be_nil
|
75
|
+
book[:isbn].should_not be_nil
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it "has authors, binding, ships_in and price" do
|
80
|
+
books.each do |book|
|
81
|
+
book.has_key?(:authors).should be_true
|
82
|
+
book.has_key?(:binding).should be_true
|
83
|
+
book.has_key?(:ships_in).should be_true
|
84
|
+
book.has_key?(:price).should be_true
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
it "returns a result for a single ISBN" do
|
89
|
+
client.isbns = [isbns.first]
|
90
|
+
books = client.books
|
91
|
+
|
92
|
+
books.size.should eql 1
|
93
|
+
book = books.first
|
94
|
+
book[:title].should_not be_nil
|
95
|
+
book[:isbn].should_not be_nil
|
96
|
+
book.should have_key(:price)
|
97
|
+
book.should have_key(:ships_in)
|
98
|
+
end
|
99
|
+
|
100
|
+
context "when page does not include #prod-container element" do
|
101
|
+
|
102
|
+
let(:mock_page) do
|
103
|
+
page = mock("response")
|
104
|
+
page.stub!(:search).and_return(nil)
|
105
|
+
page
|
106
|
+
end
|
107
|
+
|
108
|
+
context "when page body is empty and HTTP is OK" do
|
109
|
+
before do
|
110
|
+
mock_page.stub!(:body).and_return("")
|
111
|
+
mock_page.stub!(:code).and_return(200)
|
112
|
+
client.stub!(:request).and_return(mock_page)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "throws a Barnie error" do
|
116
|
+
lambda {client.books}.should raise_error Barnie::Error
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|