barnie 0.1.3

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.
@@ -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
+ 6fdg5kYTAKYgoDhLcWt82QW87AKN7npfcwavgamdt/ya/VYW5Jf3K1n2Ia+v
99
+ 8k+KIC6hdQnzXLQOC20tfo7dEOamqnz9+PIdoKslPnNyg5sW5p0aonXkRWDT
100
+ zVu0VVIDrR/8dNpRhcl5pwU51mQ+aRmErDVeaOmmDVMkReEXIOXyj2dvxbRB
101
+ vJAM5jAgw4wG5FAmJxEMFJAlnK6Tw+gSjWYx3bCV65mTquhlw/MmH8Bid/0g
102
+ WTLSmFPmMdmS92IPqAX7dZYmBJ4nvdks8D0XP4MY9XziOYjL9ODnjv1Bowtc
103
+ AKJEbQaWfhygaN83QnsX7zqcc81Duck5h4ZEmZfLb78GCe7aaBQn4zCYc7uH
104
+ nLkzGg9c7zMpSw4O84dmkXhL4Ocvci/hS7gwi/PTORpKGcy05ySZ+LMEPm46
105
+ AbNOM8gE5rXJspDmTcxiZiYf+0lKmPDt/f7bPwBOZct84JEPITJSPERyGPwH
106
+ jEbZse+EwKVGvu27lxSI/Oo7diPnwT0eCjGsPDdOtbs9OskkmrW+pJ+mbgjS
107
+ 8gnvzt07d3ohALpB8hZ+COvem496p4s7S8P3QUcHTCa9aHjtKzn459Ijwqrh
108
+ T/SGw4vo0EVHnbgfakgaEV6X2wuqWbZ9NjF5Bmn4yR0O0wi59ikCXBxTTZ6F
109
+ 44Wlk6MyG5ArWT05fsQZw4hy5erorNWAzv+KghlNpI8IDEkKP/nhWDq6jIIM
110
+ 22qdUbDWpPMooeHAzaZltNJVjlZaRRA3TVVnII4XjmJaBRBndH2TkBJhZEEY
111
+ gjujjSxoexDbHeeJoP2RePoAC+pEf0Zic0EizEvKvMZ3v6rU8pHc5I2z3oGa
112
+ k8V3ZOUt1imWWlmlmKbc1tfUKNp2aBRd3WmUGjWKvrpGQYAX3LHUwoRZ1QVi
113
+ v0e2AFgJAcL1orXXhc7Ob2Mga/m0l68K1Yzep/RKOvHexu6V9M4PAukd/IoY
114
+ 0zoKkJ/SietPAcWLqN22NY7aYDzA46TwOMkfJ9++c+Ohh9rpO3Jy3CMt0jvD
115
+ v4f9I/JxNnTTG+j3mIjOiW9y4gF2WZHwYnU0/9ENAXQA0WM//U+jy4uEF9fF
116
+ 8gV7HhnCeySET+JFsznxExJGKVmMUDKKoym5udLJlstdwI8JPJH6UyoXsPTp
117
+ pdTYSekNGnrSTzDIYF4k5cRIJ4Er9WaudJhQiQvUfSLrOFxkDRwhvC2Yay0a
118
+ I9AaiugM/0KLz0BE1xGmuuZDf35hMmswok7dS3/spjjN700B/Dy39RqqhtJJ
119
+ lC6NO0sx+bgzq3q+LMfhni+4aDtWu2A0XdNBBB1oJzFSCCPl+dhIFVl2Sw/3
120
+ yPuQCwHahYfRdAb2ROjNmbsM5JmvwMEdMAIpubiiYTqX3vhgUZFDuM7ieZ1C
121
+ zTrVZJ1qdAtforrOfRtEse82X2fTAEc6LxJe3GL7qa1Vtp8MTW6b69lP+nbY
122
+ TyA6O/upRmXSrkGZ5JAFs5YUJzhQMaCe5wIyRjGV3kVXMFEuA6Shc4BsV9Qp
123
+ RtvgOoVdmIpZ0CkLBBXkoEYRFBFGEeEUPaxanmplZTMGLve3TuUgCGsywpqc
124
+ MKTgJnerq4vedN48z2Y+4Hvzwh2PUUy7UElEJRGVW6w6jHZl1aFZsqWtpzoM
125
+ ZTtUh6HvVEeNqsOqQXVcTKh0EPt0JJ144zsdWGe32cOWqXAItCrqEM0wDKZD
126
+ 8EJX20pBhwBdhNF1u2cM0FMYu2eysHcfXqhXn8pSeSSm3s+DJ/ArnMnLroUF
127
+ tzd2AL6Tl32A7+SKbsCFXqnLH/h4ekV3KusV3ZSV9np6RVW3Q6+Yyk6v1KhX
128
+ 7Br0yk1n6z2eVcsSQUx2VQ+XbVjcwwUXqt62C5rkFlct+RaeHUgAFAl07DvS
129
+ TzMYTik5Gvp5pEDJlbqCatGeSLVU5uv6bHjZa0t/ImPFqu7nMpX1I8+c7VAq
130
+ 1i7yrE6l4tTi53KHgHtuEoUcBluvozhKJ3Ppo9Sn0K+4DH+2iIxyqjq5LNXm
131
+ Ti64cCzTKTm53OErwol5xbGVrZxwgshHmXCKns/6yQbcu6Wzta6AcLqaH+Um
132
+ J6zRvcHXLcZzu3oosWnJ6prOJ13fDjy3d3FfdeK5qtQB6EBTIkUj6WKSTQf5
133
+ TPZdNp4AX0pg5NgizUGpnv5h5ekflmoZxfQPRgamSTMyCtN/TsnD03/tyRYq
134
+ KjFsqX975G3mDylb4EYsl2UWV/Zk4Sqc3MWsnxc3mfXPm30/gI8DkIOz/jlZ
135
+ FLdYS+gbJJzYsmWsuURhbYeWcOydlqhTS9SRDojudOGbEN6P1oELwhm70huE
136
+ v8MgyhJagj9bydPiqqYLGprJ9QVe6LZtLC1O5M4SThDqDEETQZoIp+n5TP43
137
+ 5eEtXd5jjiLQIRg1dQh1uIlKfcpDkNtEcpucXLYVyzLPtxjyVcWujPk2TyZ5
138
+ gTmGMI53mF8n5teRZIh4dWtKRQmhVOGiUKvmEy4tHFjLKH/X4nPJtbyCfWA8
139
+ Icyvx7Y7e4lBsl4AiJ8QTVEcloBSv4nwkAu/monwTzedBJSGzZ9xYzfA5LyC
140
+ 8IotXnF2qicRWoqsqWuqjO1wJtnqzplUq8pYI4twjaXRizjKBmzQRCxNgLk5
141
+ cE/HfNH04TmvLhIHVL2q3aCLZAu8aGulwNgeWaJwyREjYmWrGBKq+lQq5tHZ
142
+ vApX9sD4iEH1jH3KNzU5iyPcHm1ncNQbBlvdx6Srsr5muJK+HeFKMLh3yqNO
143
+ 5bFLbr0Flf0pWxfoxeNsSsO0deFP2druYZwlflZeHLANkXyOSgOfxLWB/EnA
144
+ 2p4IO2U4XCfECiKbgkjcM41VEFFRfcYvGmiKBhtdUUFExXPJjt0fdHvX6bCg
145
+ 8c5iKn3AAbjfGnT3D87BQPMTAlpwCgMZ7LMBLeTPRiE5jS6Jqr0CG42t0K0T
146
+ NlTdmQSWgW2tGYu6HTkOIDq1g/tiCMDHvbqGd8UuwLuxObzDLwzpBLo/E3Cv
147
+ I9naMjHuBfdCSlp9N0x96SBLPDr1y6hoivx+tXKi9dIWg8V4IcskOQ04x2dk
148
+ EEHGCg4k9Ylm9xVYVewZ6I4QZBq3IaxTbzDKmoKyRrfEzA10xsSNgyhNabM/
149
+ hUkz7tkuKgir2OKJvl7dS6QZsr7uwsKWeIlMZzfRr1MX1JErvewhP2fHobTe
150
+ +sGAxql0kgXLgZCOkbvLqyZLW3myNF7ommbes8rA6UEVIUjCvChO1QpOoPYf
151
+ tM6wJhfv6PQeeZ8kGU1Ij52HwnbfeO0nnj8L+HEU9WkUQTmmpXHiG90b/N9i
152
+ /Leq56XhLoUv0xaAIb3D/zrxv66E5yJyMR9H63XmhlQ6j2g5gcqxckdJ1Rxn
153
+ 07QssWGtZZmKYd0D/dztjUkESA1Bap5XAFE1vt3ezT3m20dvP3o9DnF/8DF9
154
+ Vao89kf1phkg8U0kvtG9ZvkG2yzFdBzF8+a53HwbuBloEF5BzmWCFdusP6zK
155
+ +qNtytqawahqezv0h1W/L+lF6486Ept5EhQue0K1JOBK+okGQeuApulcOpFe
156
+ +zRNACBKiOi0BSJWzXHWbKfNd8uAC1U3yzsuCaLY2miOoUgU+ZYpkF4QhfQ7
157
+ triMRJITmQgqVzjfQnm6BLWNWbsiJ2pdN0ZamydyUxCLx86UeV5dxeAOU/6X
158
+ vOUmaxjP2cDavHX+ibdY2WwSBguGjr5uwvN2pD6AmOy0TZ3appaM53K+14/u
159
+ XFrkNhVBEE+BEyBYNdkZt1kRu8Saim6ULJWbCXKlLKtnFABbjWHl/tUb33p/
160
+ slrFIzIeSKyrpAg+pBMakzfspmerC3S9eoSSIusv0nGFY3+nCuo8damOXOlF
161
+ ZM8R7mEtndAkodDluIxqqpgLa1XzpE2jbXKHFVw4ml7aSkmQ8HeWIs220l6Q
162
+ 8YzOyVufU4uO1Zr9jNQ0F9QATJc5WB3+8/0yljfL2P6dMjY4IcmSjXWXrbdi
163
+ 5yMc+Tv0rxP968iBFg7yhVek/9kPgkRC4bkO2PkxmoTSMbBiea5ri3B7rWo2
164
+ tGqKnZDwwtG1onEgSFs4WzhpTK5LIU9IHeHUPbysYT+Rrng8vq7ChlotCyCy
165
+ yYkEu+Ka11sM/45RfdVBl7U1J//bsVESDtod/NcJ/3WkQ98OU3cDkyPWX7Wq
166
+ idGqYfDVBrywTMN8GPD/XBC/Gu9u7+oOxp9LinKFXS22xYfj7BaPa4XxOlKU
167
+ j8Jx4CeThyBIVcTmbVrVLGTVanNnPl6ohlP04ggiqsL2UwUcVeFVuWs7mH4u
168
+ 25K223J73Z0ktuI4NRyeO5iuE6bXSAauCD0rOgOA4wKIjEcBbVPR7wbtzZwr
169
+ fwyEV+Hjfd3ewfvjzsKrh3Bapuys60vfEnhXd86UWuG9jnTgoy8zPAEXYwu5
170
+ WX83Fmm5L6BqSjBAuZpjumqbevGMswUdC/fCmkCuKk917ExFlt3s4R4gYeyO
171
+ Y3c24Rv5HCWJO99h+SNP1asHSLY1WdVf5Lqoqu08KrVieR3pvCduOvl3FPLt
172
+ x17TSxpEM4zkcAM8y3dC8Yx3L5F6Hu4WJh3iMb6FXKQycrXF0Yta5UORdUfJ
173
+ 935T2k7pGLKcUJbZVCKUFAglnFAcIEPUBgVa98hbf5SS97gTzH2RluYTqYS6
174
+ OL8+o+pUHgWSgbTrwnZHVbarH39sOrLxMqMqYRTv9Eed+mONdOAXs+/buyz1
175
+ Jn4ShYl04Ca+V8BeAOKi4+UtjUCo4nmrn9KRG8LtsZumURmILUsAMQjAoulv
176
+ EsLaJsW2Sy6ZvO1a9/xhZDcF2Y0uLxNR3iR4EobMsLnoLYZPYg1Z1KyL9XVt
177
+ Ct0jIb0iXjSbEz8hYZQWdoIbxdEUeQHjg3ztTmffk9N8jBBQNCluIpf6UyoX
178
+ gPYPEOE1MjJfpAjTsR+yDMheMKaD2L1XWG1xPodmLwlr3goRrezEcieW94rl
179
+ Gqlrf1axpDj73kQ2jwLKzJB4ztKT34cpjad06LspfUhaLVSstsg305yytF63
180
+ y/xhxXZXkV/Wr/qFeB1BW7ad2bB47Y99sOEKI8ZczGANc7NJ65C3/ckHPuSj
181
+ oyDhSxYYRa/qI0NAaQvX19FVGETucL2k5jbPTL7nEcK+daPLOnDzUDfFkU1n
182
+ zZBWc03L68kl5R576jAKR348PWJMyQ2kn+833PAgkWiI89cL+HnxFOPovU9S
183
+ eFsKnSo/Nrj52AMG3MHHn8nph59ktopJwD7vUxi0w2Rzq22QzcPo6llt5qqv
184
+ kQf3Z9Ura6uUm3O8H7PAp9KJv7xnnqEpwhwDq777pLM6RlKTk9ToshLhpQ32
185
+ roiCYN788M0p5c40LBJR3M3lHk3m1sg+eoEyd6dCulsIVWFm6WpRCKvM1XZS
186
+ +WKlco2kkBcjlWvKoSY2kNW1RncneTvJW1Hy1ojjfzGSdxZT9yF501VdyJve
187
+ 6F4/8MdJ2XM4rmUL5GF3etItm9u6n3Fy+GE0KrjgRexxq5/BzXiSqhd5n6U3
188
+ NFmWFNMW4Qu60ejypgg09argiBdt1eqIRzKbgswmJ7PRZbVE1BJeu8kJGbEP
189
+ A7V5Sq/Y9lWiTHh5iwPqtOrbTGmabCrrueXW9co9z3gIEItdPESdSF5HbPRZ
190
+ jGMLYwfy5A0Mls2AadIFdb0Jhv7iDFXqIWgk5X2/DdPJHVaVj1AydLELIVwY
191
+ ltMuhNAtaMvhlOS0kZw28u3Z0fHFd0Qi+G+eKoKRdEg0yYleIbL6qQ5cekSG
192
+ V+ZPnWoJaW/mtDe6pc+wweqwe+kPm6dZiFqIFQgrPJd54iNucFg9FA9MH+Vl
193
+ huKBWOxUT52qp45Q7l4QSP3UjSXEZkltHfvh0JWOaenoaKOt5pPtqlHaZRVj
194
+ K1pxh0NBAwAk0xAq+XYxiUfUPI4SQK8xxe1if4riz2z6CsjIaCVA6wpnND2V
195
+ ZqnAzyrdr1N5MJKbQDKiouBwdaXRT+lsQsNmP4hQbYgiYcXtUxyqVllxqOpL
196
+ jeEGadgpjjoVxy6G+yYNb2N3OgWcxqQQtkD5JguZsABon0DPALUP4ij77Jaz
197
+ ZtpaPve38Kgh1gZLLGFrk3kbRK01PYaR1xTkNbq8TER5ix1CRvUMS5zRr7sZ
198
+ irEd6KrtpuW1omsdBx7hwW+9KcW9qkPpInaHPoMmP5SO/ZTGbprFtPWWRvGY
199
+ Smc0/uyHSQmmbCePn6h68pGuOXzzWbxQdbO9dIZeTh1ZUIeBddfUkW8Po9Dz
200
+ E34AEieVCFKfzzaFj8rn9dhS68GqjOKmoBgUVYn91SfzBy4oiNi9blhUFFve
201
+ Ut2jKtV9QrYqay/ytG6Uj53yqVP51HH+0bsMRol0GE2nWQhYhg1g6PgV9F66
202
+ yAaDMgQ6tjjTQa96CJJhmHy7FnZhgSF8rWoYLaREC+oTQQ5h5Dyfvbc24Nxt
203
+ Hd1DJAnxJG7K921h8fBf0lp3bhH0Nhm9zGFzzekN3EDz4NJ3mydRgm2yAsHC
204
+ s9MYf/5gE6OOg3AOYn8IsiqdRqn0k7vYG1SMjvKwdkQMk1H1OBzNcgx+6iZc
205
+ OLZZBARBCHA+JYyQxf5NgpYVnMFPdS5aVabd7OMe6fFuuYMI9CKLxITxn+Bn
206
+ LING7Zs6CerFrk6i9OzE+BG35ajudDA12Vh3W6ftmPfBcN7N++rE+HqOu1ng
207
+ SDhGG/htHGWzpPVP3IECJiJUOpZ6Q3damsWYiiJmMUbVc24003A43MOFBZel
208
+ Yw8KNKEpzWlC0F+QRY5lwuh6PhPBR2DlXT0HVTCbBQLt+bSw/p23F3Q3j+Um
209
+ I7zRvcn/6tPDt7hjodv8UW6+dQM3xPM0eRX5USaiaot1zAbbwIJ6WjfeRN+K
210
+ ZUOUlp2OqVPH1HGmzm0W8o/ZcC4dSmfwEExoy4iY50MYVc/U0ds2P1MHL9q6
211
+ bjzsXEB6yKFMBEErxC0qf6B/YVXu3dLZetNKhvPmodwUdGFmSYmr1XXFmZsF
212
+ zSO5eUoD1jCWyZFMeHmLtYSqVj+zx2rL5rpqQt0ONaHuTJFa1UQdZ/b0pDd+
213
+ nKTSMUbRuWkZ8qSLCY3ieetoCtNqfzTyl1BPE8F1RtWDfLS2yh3SeGG31eLa
214
+ Z48wysgx88akS9qDU8ZOap4SQdwz0h+PxtZVuFDrsc7TpqCx0b3m9DZjv1b9
215
+ ICBHkU17TTeUtR3Yr+0iC2vF/joOAjqg6RWlofQhpCww78QN2f6pl1B3Hg1o
216
+ nEoH8Xy4PNfVRWCeUfUkIE3TBerDhaHbTnHVgdNEgCbmcUGaxDokkEU4WYST
217
+ 9YzynB6Blbf2fI+wWBfoMnM/eT4NPUqiETnLBoHvkf6MsozcmtcpoRtN3o0m
218
+ 7wZbrrzxQbZZLajKJgcI6e2XaRLou5DIWtVCHUmyLFQvGzKokVIonNAkwYxN
219
+ vGaAQ2O+vvrOTQLM4CxhmiEC9YzKSbKOMArwwrFNbTkgUtD2igBBRBDHC4K6
220
+ xUq1IPAZrVQ/InNX40Xty9SCTrFMLUpbrAmM6vaB1pbbayoCY0sUgbELT6xV
221
+ EdSRstpH4nEqC6LDzsEpezH6KYKPCLU5AHZN/KVVVlPsaWZUTWbV2mZb+IfM
222
+ tmGpxSOHGHWEU8c2Ji67RgR1C1UgCHxYFWhPpQoelb2rcaN2ZSDoFMpAlDbY
223
+ kceN6TxfBmeF6/XvLVUv+pOqF20rNuNBUdiplzrVyxqJretskMk+Cwbu3Oof
224
+ L4GdJc5NNqyqZoVpC7MCLuDKLOiSAil3rjMcz0MoZtCN+PmEP1Xn4YNd3iM9
225
+ +KDzxOehT4VYqFr3RAAuNzmXARmvWV5dh5z73sSNhxhP9RMFROuKCgymwoot
226
+ 1iWbrGPbiuysed7CtqxlWLtTr2tVJnXk8b5P0N3RwhAV6UjiESpl8LPFyc1G
227
+ 1URdzbTEsgVcmIpTVCA+87agmigHyTyjJen1OCQ6tIduJOpNMEXnTUzRwvhM
228
+ yfsUD8tL63UuPRx9VDFByovStHnhp8lVFKcTMJ2wgiwqtlgfmE5ldWDo69sW
229
+ 7e1QB/bu4Oxa1UEdmbXltICj0YjCULukwbzVdwEqYld6Nx8AkJQB0BFHMxlV
230
+ E2w1W+F7OeCFpirqnQkWBZLY8janinCqnpHW2JyRd/a71jVrTlyTEwcYX+Lv
231
+ IxkTLn6esjmBVVusQDYyKNqyve7eDNp2aBDn/qPedhpkMw1i1pGH3ZP68ySl
232
+ 00TqzaAh15tIaST1pyBJPMeMH7TEB+Ddew+YqiKcLmbVJO2lxApDKQXJCipJ
233
+ TiWOAkYlT2MjBSqf8X4OtXB7Leb8kTs9bKu2UKpv0mlpsrZuKK2zFdoChvBO
234
+ W9yiLfqT6ApnkPkQud5kUFpUXZ9EgTGSeXXhgAriIx4wQXPvk9rz1+edU7bz
235
+ SP/8onPOr/591FEVftm76OBOx6cgjCCIY0q+Hqff4/9MnLF5/F+g5l/+gv8v
236
+ cBPZJIXuJZdslEXBCxy6S4h5dXV1G9PZ0axJywcE+sLHJHBnxtZ92WGvAlUW
237
+ QnNb036aQbOyO5uJRrOkBYUWf53EXgZ/o89sbdqfTaKQtvwh7jkAQ9Ru/zBN
238
+ OzaeW86PAyanHz78k1Hgn+GtK1Bwf+cmNJhJI/fXhHeQHwv8pvc/q/TtjpbF
239
+ AB3QJE0oHrwk2j64rti48bE/SiUY9UPR9lsoo6ANN296SqcDIBFwmTd9sihv
240
+ 3HRhJL2Ba+LCRCGKV/mIq4BoxAj+IUlBUjqjLAgY8HR/BtxgGLT5a1zPS8uv
241
+ mcK0sY9XMA/wvCgLa3kLm8rBa9IM9PoHLBBequNlV34yQQ3b6P7Ejr/wk1X6
242
+ dP+H97IkjaY0lhIaX4Iy5WPgUNSSPq8tvYap17/9NUe3Mq6NoijF2frv/0dU
243
+ x7EkTVEVsZNT8fUkCLwSCq8muOEbGDx9wPBzOvRjIbynrMGzQ4I/IKW///bf
244
+ 339br+WAjt2AsfrSp1cdPH4RPugF/oOa5GPySA3jdlcxqlj0i4jLx2kZpkKX
245
+ rjfHc1LYBTmLAt+bV2x8ROkQ55YCEkTp2hTY/7skkSEeF75HuGqQJPhpEA3n
246
+ 8M8knQbd/wc1bmfMnzIBAA==
247
+
248
+ http_version: "1.1"
@@ -0,0 +1,7 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "rspec"
4
+
5
+ require File.expand_path("../../lib/barnie", __FILE__)
6
+
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -0,0 +1,12 @@
1
+ require 'bookland'
2
+
3
+ def isbns_fixture
4
+ isbns = File.new(File.expand_path("../../fixtures/asins.txt", __FILE__), "r").
5
+ map { |line| Bookland::ISBN.to_13 line.chomp }
6
+
7
+ if block_given?
8
+ isbns.each { |isbn| yield isbn }
9
+ end
10
+
11
+ isbns
12
+ end
@@ -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
@@ -0,0 +1,8 @@
1
+ require 'vcr'
2
+
3
+ VCR.config do |c|
4
+ c.cassette_library_dir = File.expand_path("../../fixtures", __FILE__)
5
+ c.stub_with :webmock
6
+ c.ignore_localhost = true
7
+ c.default_cassette_options = { :record => :new_episodes }
8
+ end
@@ -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