cloud_search 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,16 @@
1
1
  module CloudSearch
2
2
  class SearchResponse
3
3
  attr_writer :items_per_page
4
- attr_reader :current_page, :total_pages, :body
4
+ attr_reader :current_page, :total_pages, :body, :facets
5
5
  attr_accessor :http_code
6
6
 
7
+ def body=(body)
8
+ @body = JSON.parse(body || "{}")
9
+ calculate_pages
10
+ build_facets
11
+ @body
12
+ end
13
+
7
14
  def results
8
15
  _hits["hit"] || []
9
16
  end
@@ -16,12 +23,6 @@ module CloudSearch
16
23
  hits > 0
17
24
  end
18
25
 
19
- def body=(body)
20
- @body = JSON.parse(body || "{}")
21
- calculate_pages
22
- @body
23
- end
24
-
25
26
  def items_per_page
26
27
  @items_per_page || 10
27
28
  end
@@ -52,6 +53,19 @@ module CloudSearch
52
53
  @current_page = @total_pages if @current_page > @total_pages
53
54
  end
54
55
 
56
+ def build_facets
57
+ @facets = {}
58
+ return unless body['facets']
59
+
60
+ body['facets'].each do |facet, result|
61
+ @facets[facet] = if result['constraints']
62
+ result['constraints'].inject({}) { |hash, item| hash[item['value']] = item['count']; hash }
63
+ else
64
+ result
65
+ end
66
+ end
67
+ end
68
+
55
69
  def _hits
56
70
  body["hits"] || {}
57
71
  end
@@ -9,6 +9,9 @@ module CloudSearch
9
9
  def initialize
10
10
  @response = SearchResponse.new
11
11
  @filters = []
12
+ @facets = []
13
+ @fields = []
14
+ @facets_constraints = {}
12
15
  end
13
16
 
14
17
  def search
@@ -29,6 +32,16 @@ module CloudSearch
29
32
  self
30
33
  end
31
34
 
35
+ def with_facets(*facets)
36
+ @facets += facets
37
+ self
38
+ end
39
+
40
+ def with_facet_constraints(facets_constraints)
41
+ @facets_constraints = facets_constraints
42
+ self
43
+ end
44
+
32
45
  def as_boolean_query
33
46
  @boolean = true
34
47
  self
@@ -49,7 +62,7 @@ module CloudSearch
49
62
  end
50
63
 
51
64
  def with_fields(*fields)
52
- @fields = fields
65
+ @fields += fields
53
66
  self
54
67
  end
55
68
 
@@ -81,9 +94,13 @@ module CloudSearch
81
94
 
82
95
  "#{CloudSearch.config.search_url}/search".tap do |u|
83
96
  u.concat("?#{query_parameter}=#{query}&size=#{items_per_page}&start=#{start}")
84
- u.concat("&return-fields=#{URI.escape(@fields.join(","))}") if @fields && @fields.any?
97
+ u.concat("&return-fields=#{URI.escape(@fields.join(","))}") if @fields.any?
85
98
  u.concat("&#{filter_expression}") if @filters.any?
86
- u.concat("&#{weighted_fields_expression}") if @weights and !@weights.empty?
99
+ u.concat("&facet=#{@facets.join(',')}") if @facets.any?
100
+ u.concat(@facets_constraints.map do |k,v|
101
+ values = v.respond_to?(:map) ? v.map{ |i| "'#{i}'" } : ["'#{v}'"]
102
+ "&facet-#{k}-constraints=#{values.join(',')}"
103
+ end.join('&'))
87
104
  u.concat("&rank=#{@rank}") if @rank
88
105
  end
89
106
  end
@@ -97,12 +114,6 @@ module CloudSearch
97
114
  def filter_expression
98
115
  @filters.join("&")
99
116
  end
100
-
101
- def weighted_fields_expression
102
- weights_json = JSON.unparse(@weights)
103
- expression = "cs.text_relevance(#{weights_json})"
104
- URI.escape expression
105
- end
106
117
  end
107
118
  end
108
119
 
@@ -1,3 +1,3 @@
1
1
  module CloudSearch
2
- VERSION = "0.1.9"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -83,6 +83,20 @@ describe CloudSearch::SearchResponse do
83
83
  subject.offset.should == 0
84
84
  end
85
85
  end
86
+
87
+ describe "#facets" do
88
+ it "returns all facets" do
89
+ subject.facets.keys.should == ['genre', 'year']
90
+ end
91
+
92
+ it "returns facets details" do
93
+ subject.facets['genre'].should == { "Action" => 7,
94
+ "Adventure" => 7, "Sci-Fi" => 7, "Fantasy" => 5,
95
+ "Animation" => 1, "Family" => 1, "Thriller" => 1 }
96
+
97
+ subject.facets['year'].should == {"min"=>1977, "max"=>2008}
98
+ end
99
+ end
86
100
  end
87
101
 
88
102
  context "when there aren't results" do
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe CloudSearch::Searcher do
4
- subject { described_class.new }
4
+ subject(:searcher) { described_class.new }
5
5
 
6
6
  let(:url_prefix) do
7
7
  "#{CloudSearch.config.search_url}/search?"
@@ -9,171 +9,183 @@ describe CloudSearch::Searcher do
9
9
 
10
10
  describe "#query" do
11
11
  it "returns default query" do
12
- subject.query.should == ""
12
+ searcher.query.should == ""
13
13
  end
14
14
 
15
15
  it "returns default query when it's tried to set nil value" do
16
- subject.with_query(nil)
17
- subject.query.should == ""
16
+ searcher.with_query(nil)
17
+ searcher.query.should == ""
18
18
  end
19
19
  end
20
20
 
21
21
  describe "#with_query" do
22
22
  it "returns #{described_class} instance" do
23
- subject.with_query("foo").should == subject
23
+ searcher.with_query("foo").should == searcher
24
24
  end
25
25
 
26
26
  it "setup query" do
27
- subject.with_query("foo")
28
- subject.query.should == "foo"
27
+ searcher.with_query("foo")
28
+ searcher.query.should == "foo"
29
29
  end
30
30
 
31
31
  it "returns cloud search url with foo query" do
32
- subject.with_query("foo").url.should == "#{url_prefix}q=foo&size=10&start=0"
32
+ searcher.with_query("foo").url.should == "#{url_prefix}q=foo&size=10&start=0"
33
33
  end
34
34
 
35
35
  it "returns cloud search url with foo query" do
36
- subject.with_query("f&oo").url.should == "#{url_prefix}q=f%26oo&size=10&start=0"
36
+ searcher.with_query("f&oo").url.should == "#{url_prefix}q=f%26oo&size=10&start=0"
37
37
  end
38
38
 
39
39
  it "returns cloud search url with foo* query" do
40
- subject.with_query("foo*").url.should == "#{url_prefix}q=foo*&size=10&start=0"
40
+ searcher.with_query("foo*").url.should == "#{url_prefix}q=foo*&size=10&start=0"
41
+ end
42
+ end
43
+
44
+ describe "#with_facet" do
45
+ it "setup facets" do
46
+ searcher.with_facets("foo", "bar").url.should include "facet=foo,bar"
47
+ end
48
+ end
49
+
50
+ describe "#with_facet_constraints" do
51
+ it "setup facets" do
52
+ searcher.with_facet_constraints(:foo => ["bar", "spam"]).url.should include "facet-foo-constraints='bar','spam'"
41
53
  end
42
54
  end
43
55
 
44
56
  describe "#ranked_by" do
45
57
  it "returns the instance" do
46
- subject.ranked_by("foobar").should == subject
58
+ searcher.ranked_by("foobar").should == searcher
47
59
  end
48
60
 
49
61
  it "sets the rank expression in the searcher object" do
50
- subject.ranked_by("foobar").url.should == "#{url_prefix}q=&size=10&start=0&rank=foobar"
62
+ searcher.ranked_by("foobar").url.should == "#{url_prefix}q=&size=10&start=0&rank=foobar"
51
63
  end
52
64
  end
53
65
 
54
66
  describe "#as_boolean_query" do
55
67
  it "sets the query mode to 'boolean'" do
56
- subject.as_boolean_query
57
- subject.should be_boolean_query
68
+ searcher.as_boolean_query
69
+ searcher.should be_boolean_query
58
70
  end
59
71
 
60
72
  it "returns the searcher instance" do
61
- subject.as_boolean_query.should == subject
73
+ searcher.as_boolean_query.should == searcher
62
74
  end
63
75
 
64
76
  it "uses 'bq' to specify the query in the URL" do
65
- subject.as_boolean_query
66
- subject.with_query("year:2000")
67
- subject.url.should == "#{url_prefix}bq=year:2000&size=10&start=0"
77
+ searcher.as_boolean_query
78
+ searcher.with_query("year:2000")
79
+ searcher.url.should == "#{url_prefix}bq=year:2000&size=10&start=0"
68
80
  end
69
81
  end
70
82
 
71
83
  describe "#with_fields" do
72
84
  it "returns #{described_class} instance" do
73
- subject.with_fields(:foo).should == subject
85
+ searcher.with_fields(:foo).should == searcher
74
86
  end
75
87
 
76
88
  it "setup more thane one value" do
77
- subject.with_fields(:foo, :bar, :foobar)
89
+ searcher.with_fields(:foo, :bar, :foobar)
78
90
  end
79
91
 
80
92
  it "returns cloud search url with foo and bar fields" do
81
- subject.with_fields(:foo, :bar).url.should == "#{url_prefix}q=&size=10&start=0&return-fields=foo,bar"
93
+ searcher.with_fields(:foo, :bar).url.should == "#{url_prefix}q=&size=10&start=0&return-fields=foo,bar"
82
94
  end
83
95
  end
84
96
 
85
97
  describe "#items_per_page" do
86
98
  it "returns default items_per_page" do
87
- subject.items_per_page.should == 10
99
+ searcher.items_per_page.should == 10
88
100
  end
89
101
 
90
102
  it "returns default items per page when it's tried to set nil value" do
91
- subject.with_items_per_page(nil)
92
- subject.items_per_page.should == 10
103
+ searcher.with_items_per_page(nil)
104
+ searcher.items_per_page.should == 10
93
105
  end
94
106
  end
95
107
 
96
108
  describe "#with_items_per_page" do
97
109
  it "returns #{described_class} instance" do
98
- subject.with_items_per_page(nil).should == subject
110
+ searcher.with_items_per_page(nil).should == searcher
99
111
  end
100
112
 
101
113
  it "setup items per page" do
102
- subject.with_items_per_page(100)
103
- subject.items_per_page.should == 100
114
+ searcher.with_items_per_page(100)
115
+ searcher.items_per_page.should == 100
104
116
  end
105
117
 
106
118
  it "returns cloud search url with size equals 20" do
107
- subject.with_items_per_page(20).url.should == "#{url_prefix}q=&size=20&start=0"
119
+ searcher.with_items_per_page(20).url.should == "#{url_prefix}q=&size=20&start=0"
108
120
  end
109
121
  end
110
122
 
111
123
  describe "#page_number" do
112
124
  it "returns default page number" do
113
- subject.page_number.should == 1
125
+ searcher.page_number.should == 1
114
126
  end
115
127
 
116
128
  it "returns default page number when it's tried to set nil value" do
117
- subject.at_page(nil)
118
- subject.page_number.should == 1
129
+ searcher.at_page(nil)
130
+ searcher.page_number.should == 1
119
131
  end
120
132
  end
121
133
 
122
134
  describe "#at_page" do
123
135
  it "returns #{described_class} instance" do
124
- subject.at_page(1).should == subject
136
+ searcher.at_page(1).should == searcher
125
137
  end
126
138
 
127
139
  it "setup page number" do
128
- subject.at_page(2)
129
- subject.page_number.should == 2
140
+ searcher.at_page(2)
141
+ searcher.page_number.should == 2
130
142
  end
131
143
 
132
144
  it "ensure page is greater than 1" do
133
- subject.at_page(0)
134
- subject.page_number.should == 1
145
+ searcher.at_page(0)
146
+ searcher.page_number.should == 1
135
147
 
136
- subject.at_page(-1)
137
- subject.page_number.should == 1
148
+ searcher.at_page(-1)
149
+ searcher.page_number.should == 1
138
150
  end
139
151
 
140
152
  it "returns cloud search url with start at 10" do
141
- subject.at_page(2).url.should == "#{url_prefix}q=&size=10&start=10"
153
+ searcher.at_page(2).url.should == "#{url_prefix}q=&size=10&start=10"
142
154
  end
143
155
  end
144
156
 
145
157
  describe "#with_filter" do
146
158
  it "adds the filter to the query" do
147
- subject.with_query("foo").with_filter("t-product_active=1")
148
- subject.url.should == "#{url_prefix}q=foo&size=10&start=0&t-product_active=1"
159
+ searcher.with_query("foo").with_filter("t-product_active=1")
160
+ searcher.url.should == "#{url_prefix}q=foo&size=10&start=0&t-product_active=1"
149
161
  end
150
162
 
151
163
  it "can be used to add several filter expressions to the query" do
152
- subject.with_query("foo").with_filter("t-product_active=1").with_filter("t-brand_active=1")
153
- subject.url.should == "#{url_prefix}q=foo&size=10&start=0&t-product_active=1&t-brand_active=1"
164
+ searcher.with_query("foo").with_filter("t-product_active=1").with_filter("t-brand_active=1")
165
+ searcher.url.should == "#{url_prefix}q=foo&size=10&start=0&t-product_active=1&t-brand_active=1"
154
166
  end
155
167
  end
156
168
 
157
169
  describe "#start" do
158
170
  it "returns default start index number to search" do
159
- subject.start.should == 0
171
+ searcher.start.should == 0
160
172
  end
161
173
 
162
174
  it "returns start index 10 for page 2" do
163
- subject.at_page(2)
164
- subject.start.should == 10
175
+ searcher.at_page(2)
176
+ searcher.start.should == 10
165
177
  end
166
178
  end
167
179
 
168
180
  describe "#url" do
169
181
  it "returns default cloud search url" do
170
- subject.url.should == "#{url_prefix}q=&size=10&start=0"
182
+ searcher.url.should == "#{url_prefix}q=&size=10&start=0"
171
183
  end
172
184
  end
173
185
 
174
186
  describe "#search" do
175
187
  before do
176
- subject
188
+ searcher
177
189
  .with_fields(:actor, :director, :title, :year, :text_relevance)
178
190
  .with_query("star wars")
179
191
  end
@@ -188,7 +200,7 @@ describe CloudSearch::Searcher do
188
200
 
189
201
  it "raises an error" do
190
202
  expect {
191
- subject.search
203
+ searcher.search
192
204
  }.to raise_error(CloudSearch::MissingConfigurationError, "Missing 'domain_id' configuration parameter")
193
205
  end
194
206
  end
@@ -203,7 +215,7 @@ describe CloudSearch::Searcher do
203
215
 
204
216
  it "raises an error" do
205
217
  expect {
206
- subject.search
218
+ searcher.search
207
219
  }.to raise_error(CloudSearch::MissingConfigurationError, "Missing 'domain_name' configuration parameter")
208
220
  end
209
221
  end
@@ -212,39 +224,50 @@ describe CloudSearch::Searcher do
212
224
  around { |example| VCR.use_cassette "search/request/full", &example }
213
225
 
214
226
  it "returns http 200 code" do
215
- resp = subject.search
227
+ resp = searcher.search
216
228
  resp.http_code.should == 200
217
229
  end
218
230
 
219
231
  it "has found results" do
220
- resp = subject.search
232
+ resp = searcher.search
221
233
  resp.should be_found
222
234
  end
223
235
 
224
236
  it "returns number of hits" do
225
- resp = subject.search
237
+ resp = searcher.search
226
238
  expect(resp.hits).to be == 7
227
239
  end
228
240
 
229
241
  it "returns Episode II" do
230
- resp = subject.search
242
+ resp = searcher.search
231
243
  resp.results.map{ |item| item['data']['title'] }.flatten
232
244
  .should include "Star Wars: Episode II - Attack of the Clones"
233
245
  end
234
- end
235
246
 
236
- context "when paginate result" do
237
- before do
238
- subject
239
- .with_fields(:actor, :director, :title, :year, :text_relevance)
240
- .with_query("star wars")
247
+ it "returns facets" do
248
+ VCR.use_cassette "search/request/facets" do
249
+ searcher.with_facets(:genre, :year)
250
+ resp = searcher.search
251
+ resp.facets.should == {"genre"=>{"Action"=>7, "Adventure"=>7, "Sci-Fi"=>7, "Fantasy"=>5, "Animation"=>1, "Family"=>1, "Thriller"=>1}, "year"=>{"min"=>1977, "max"=>2008}}
252
+ end
241
253
  end
242
254
 
255
+ it "constrains facets" do
256
+ VCR.use_cassette "search/request/facets_with_constraints" do
257
+ searcher.with_facets(:genre, :year)
258
+ searcher.with_facet_constraints(:genre => "Sci-Fi")
259
+ resp = searcher.search
260
+ resp.facets.should == {"genre"=>{"Sci-Fi"=>7}, "year"=>{"min"=>1977, "max"=>2008}}
261
+ end
262
+ end
263
+ end
264
+
265
+ context "when paginate result" do
243
266
  it "returns first page" do
244
267
  VCR.use_cassette "search/request/paginated_first_page" do
245
- subject.with_items_per_page(4)
246
- subject.at_page(1)
247
- resp = subject.search
268
+ searcher.with_items_per_page(4)
269
+ searcher.at_page(1)
270
+ resp = searcher.search
248
271
  resp.results.map{ |item| item['data']['title'] }.flatten
249
272
  .should include "Star Wars: Episode II - Attack of the Clones"
250
273
  end
@@ -252,9 +275,9 @@ describe CloudSearch::Searcher do
252
275
 
253
276
  it "returns second page" do
254
277
  VCR.use_cassette "search/request/paginated_second_page" do
255
- subject.with_items_per_page(4)
256
- subject.at_page(2)
257
- resp = subject.search
278
+ searcher.with_items_per_page(4)
279
+ searcher.at_page(2)
280
+ resp = searcher.search
258
281
  resp.results.map{ |item| item['data']['title'] }.flatten
259
282
  .should include "Star Wars: Episode III - Revenge of the Sith"
260
283
  end
@@ -1 +1 @@
1
- {"rank":"-text_relevance","match-expr":"(label 'star wars')","hits":{"found":7,"start":0,"hit":[{"id":"tt1185834","data":{"actor":["Abercrombie, Ian","Baker, Dee Bradley","Burton, Corey","Eckstein, Ashley","Futterman, Nika","Kane, Tom","Lanter, Matt","Taber, Catherine","Taylor, James Arnold","Wood, Matthew"],"director":["Filoni, Dave"],"text_relevance":["308"],"title":["Star Wars: The Clone Wars"],"year":["2008"]}},{"id":"tt0076759","data":{"actor":["Baker, Kenny","Cushing, Peter","Daniels, Anthony","De Aragon, Maria","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Goffe, Rusty","Guinness, Alec","Hamill, Mark","Johnston, Joe","Jones, James Earl","Lyons, Derek","Mayhew, Peter","McCallum, Rick","Prowse, David","Rimmer, Shane","Tierney, Malcolm","Tippett, Phil","Ward, Larry"],"director":["Lucas, George"],"text_relevance":["271"],"title":["Star Wars"],"year":["1977"]}},{"id":"tt0121765","data":{"actor":["Allen, Amy","August, Pernilla","Christensen, Hayden","Csokas, Marton","Fantl, Nicole","Jackson, Samuel L.","Johnson, Fiona","Lee, Christopher","Logan, Daniel","Lucas, Amanda","Lucas, Jett","Lucas, Katie","McDiarmid, Ian","McGregor, Ewan","Morrison, Temuera","Oz, Frank","Portman, Natalie","Smits, Jimmy","Thompson, Jack","Wood, Matthew"],"director":["Lucas, George"],"text_relevance":["269"],"title":["Star Wars: Episode II - Attack of the Clones"],"year":["2002"]}},{"id":"tt0080684","data":{"actor":["Anderson, Bob","Baker, Kenny","Bonehill, Richard","Capri, Mark","Daniels, Anthony","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Guinness, Alec","Hamill, Mark","Jones, James Earl","Mayhew, Peter","McQuarrie, Ralph","Morse, Ralph","Oz, Frank","Prowse, David","Santiago, Michael","Williams, Billy Dee","Williams, Treat","Wingreen, Jason"],"director":["Kershner, Irvin"],"text_relevance":["268"],"title":["Star Wars: Episode V - The Empire Strikes Back"],"year":["1980"]}},{"id":"tt0086190","data":{"actor":["Altman, John","Bonehill, Richard","Brooke, Paul","Burtt, Ben","Daniels, Anthony","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Hamill, Mark","Jones, James Earl","Marquand, Richard","Mayhew, Peter","McDiarmid, Ian","McRae, Hilton","Oz, Frank","Roy, Deep","Shaw, Sebastian","Ward, Larry","Welsh, Pat","Williams, Billy Dee"],"director":["Marquand, Richard"],"text_relevance":["268"],"title":["Star Wars: Episode VI - Return of the Jedi"],"year":["1983"]}},{"id":"tt0120915","data":{"actor":["Armitage, Richard","August, Pernilla","Best, Ahmed","Burtt, Ben","Chiang, Doug","Coppola, Roman","Daniels, Anthony","Ford Davies, Oliver","Hamill, Nathan","Knoll, John","Lau, Kamay","Lloyd, Jake","McCallum, Rick","McDiarmid, Ian","McGregor, Ewan","Menezes, Joo Costa","Neeson, Liam","Portman, Natalie","Quarshie, Hugh","Wood, Matthew"],"director":["Lucas, George"],"text_relevance":["268"],"title":["Star Wars: Episode I - The Phantom Menace"],"year":["1999"]}},{"id":"tt0121766","data":{"actor":["Bai, Ling","Bryant, Gene","Castle-Hughes, Keisha","Christensen, Hayden","Cooke, Ben","Daniels, Anthony","Jackson, Samuel L.","Jones, James Earl","Knoll, John","Lee, Christopher","Lucas, George","McDiarmid, Ian","McGregor, Ewan","Oz, Frank","Portman, Natalie","Smits, Jimmy","Spence, Paul","Steen, Suzie","Yamaguchi, Masa","de Souza Correa, Caroline"],"director":["Lucas, George"],"text_relevance":["266"],"title":["Star Wars: Episode III - Revenge of the Sith"],"year":["2005"]}}]},"info":{"rid":"d1b8bf24ec64151ed54a357e94f64bd8b1dadc1d67f6f2dcbc042ac86407c68b91582fba82640f4d","time-ms":3,"cpu-time-ms":4}}
1
+ {"rank":"-text_relevance","match-expr":"(label 'star wars')","hits":{"found":7,"start":0,"hit":[{"id":"tt1185834","data":{"actor":["Abercrombie, Ian","Baker, Dee Bradley","Burton, Corey","Eckstein, Ashley","Futterman, Nika","Kane, Tom","Lanter, Matt","Taber, Catherine","Taylor, James Arnold","Wood, Matthew"],"director":["Filoni, Dave"],"text_relevance":["308"],"title":["Star Wars: The Clone Wars"],"year":["2008"]}},{"id":"tt0076759","data":{"actor":["Baker, Kenny","Cushing, Peter","Daniels, Anthony","De Aragon, Maria","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Goffe, Rusty","Guinness, Alec","Hamill, Mark","Johnston, Joe","Jones, James Earl","Lyons, Derek","Mayhew, Peter","McCallum, Rick","Prowse, David","Rimmer, Shane","Tierney, Malcolm","Tippett, Phil","Ward, Larry"],"director":["Lucas, George"],"text_relevance":["271"],"title":["Star Wars"],"year":["1977"]}},{"id":"tt0121765","data":{"actor":["Allen, Amy","August, Pernilla","Christensen, Hayden","Csokas, Marton","Fantl, Nicole","Jackson, Samuel L.","Johnson, Fiona","Lee, Christopher","Logan, Daniel","Lucas, Amanda","Lucas, Jett","Lucas, Katie","McDiarmid, Ian","McGregor, Ewan","Morrison, Temuera","Oz, Frank","Portman, Natalie","Smits, Jimmy","Thompson, Jack","Wood, Matthew"],"director":["Lucas, George"],"text_relevance":["269"],"title":["Star Wars: Episode II - Attack of the Clones"],"year":["2002"]}},{"id":"tt0080684","data":{"actor":["Anderson, Bob","Baker, Kenny","Bonehill, Richard","Capri, Mark","Daniels, Anthony","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Guinness, Alec","Hamill, Mark","Jones, James Earl","Mayhew, Peter","McQuarrie, Ralph","Morse, Ralph","Oz, Frank","Prowse, David","Santiago, Michael","Williams, Billy Dee","Williams, Treat","Wingreen, Jason"],"director":["Kershner, Irvin"],"text_relevance":["268"],"title":["Star Wars: Episode V - The Empire Strikes Back"],"year":["1980"]}},{"id":"tt0086190","data":{"actor":["Altman, John","Bonehill, Richard","Brooke, Paul","Burtt, Ben","Daniels, Anthony","Diamond, Peter","Fisher, Carrie","Ford, Harrison","Hamill, Mark","Jones, James Earl","Marquand, Richard","Mayhew, Peter","McDiarmid, Ian","McRae, Hilton","Oz, Frank","Roy, Deep","Shaw, Sebastian","Ward, Larry","Welsh, Pat","Williams, Billy Dee"],"director":["Marquand, Richard"],"text_relevance":["268"],"title":["Star Wars: Episode VI - Return of the Jedi"],"year":["1983"]}},{"id":"tt0120915","data":{"actor":["Armitage, Richard","August, Pernilla","Best, Ahmed","Burtt, Ben","Chiang, Doug","Coppola, Roman","Daniels, Anthony","Ford Davies, Oliver","Hamill, Nathan","Knoll, John","Lau, Kamay","Lloyd, Jake","McCallum, Rick","McDiarmid, Ian","McGregor, Ewan","Menezes, Joo Costa","Neeson, Liam","Portman, Natalie","Quarshie, Hugh","Wood, Matthew"],"director":["Lucas, George"],"text_relevance":["268"],"title":["Star Wars: Episode I - The Phantom Menace"],"year":["1999"]}},{"id":"tt0121766","data":{"actor":["Bai, Ling","Bryant, Gene","Castle-Hughes, Keisha","Christensen, Hayden","Cooke, Ben","Daniels, Anthony","Jackson, Samuel L.","Jones, James Earl","Knoll, John","Lee, Christopher","Lucas, George","McDiarmid, Ian","McGregor, Ewan","Oz, Frank","Portman, Natalie","Smits, Jimmy","Spence, Paul","Steen, Suzie","Yamaguchi, Masa","de Souza Correa, Caroline"],"director":["Lucas, George"],"text_relevance":["266"],"title":["Star Wars: Episode III - Revenge of the Sith"],"year":["2005"]}}]},"info":{"rid":"d1b8bf24ec64151ed54a357e94f64bd8b1dadc1d67f6f2dcbc042ac86407c68b91582fba82640f4d","time-ms":3,"cpu-time-ms":4},"facets":{"genre":{"constraints":[{"value":"Action", "count":7}, {"value":"Adventure", "count":7}, {"value":"Sci-Fi", "count":7}, {"value":"Fantasy", "count":5}, {"value":"Animation", "count":1}, {"value":"Family", "count":1}, {"value":"Thriller", "count":1}]}, "year":{"min":1977, "max":2008}}}
@@ -0,0 +1,121 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://search-imdb-movies-pl6u4t3elu7dhsbwaqbsy3y6be.us-east-1.cloudsearch.amazonaws.com/2011-02-01/search?facet=genre,year&q=star%20wars&return-fields=actor,director,title,year,text_relevance&size=10&start=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json
23
+ Date:
24
+ - Thu, 02 May 2013 19:48:54 GMT
25
+ Server:
26
+ - Server
27
+ Content-Length:
28
+ - '3816'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: ASCII-8BIT
33
+ string: !binary |-
34
+ eyJyYW5rIjoiLXRleHRfcmVsZXZhbmNlIiwibWF0Y2gtZXhwciI6IihsYWJl
35
+ bCAnc3RhciB3YXJzJykiLCJoaXRzIjp7ImZvdW5kIjo3LCJzdGFydCI6MCwi
36
+ aGl0IjpbeyJpZCI6InR0MTE4NTgzNCIsImRhdGEiOnsiYWN0b3IiOlsiQWJl
37
+ cmNyb21iaWUsIElhbiIsIkJha2VyLCBEZWUgQnJhZGxleSIsIkJ1cnRvbiwg
38
+ Q29yZXkiLCJFY2tzdGVpbiwgQXNobGV5IiwiRnV0dGVybWFuLCBOaWthIiwi
39
+ S2FuZSwgVG9tIiwiTGFudGVyLCBNYXR0IiwiVGFiZXIsIENhdGhlcmluZSIs
40
+ IlRheWxvciwgSmFtZXMgQXJub2xkIiwiV29vZCwgTWF0dGhldyJdLCJkaXJl
41
+ Y3RvciI6WyJGaWxvbmksIERhdmUiXSwidGV4dF9yZWxldmFuY2UiOlsiMzA3
42
+ Il0sInRpdGxlIjpbIlN0YXIgV2FyczogVGhlIENsb25lIFdhcnMiXSwieWVh
43
+ ciI6WyIyMDA4Il19fSx7ImlkIjoidHQwMDc2NzU5IiwiZGF0YSI6eyJhY3Rv
44
+ ciI6WyJCYWtlciwgS2VubnkiLCJDdXNoaW5nLCBQZXRlciIsIkRhbmllbHMs
45
+ IEFudGhvbnkiLCJEZSBBcmFnb24sIE1hcmlhIiwiRGlhbW9uZCwgUGV0ZXIi
46
+ LCJGaXNoZXIsIENhcnJpZSIsIkZvcmQsIEhhcnJpc29uIiwiR29mZmUsIFJ1
47
+ c3R5IiwiR3Vpbm5lc3MsIEFsZWMiLCJIYW1pbGwsIE1hcmsiLCJKb2huc3Rv
48
+ biwgSm9lIiwiSm9uZXMsIEphbWVzIEVhcmwiLCJMeW9ucywgRGVyZWsiLCJN
49
+ YXloZXcsIFBldGVyIiwiTWNDYWxsdW0sIFJpY2siLCJQcm93c2UsIERhdmlk
50
+ IiwiUmltbWVyLCBTaGFuZSIsIlRpZXJuZXksIE1hbGNvbG0iLCJUaXBwZXR0
51
+ LCBQaGlsIiwiV2FyZCwgTGFycnkiXSwiZGlyZWN0b3IiOlsiTHVjYXMsIEdl
52
+ b3JnZSJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIyNzAiXSwidGl0bGUiOlsiU3Rh
53
+ ciBXYXJzIl0sInllYXIiOlsiMTk3NyJdfX0seyJpZCI6InR0MDEyMTc2NSIs
54
+ ImRhdGEiOnsiYWN0b3IiOlsiQWxsZW4sIEFteSIsIkF1Z3VzdCwgUGVybmls
55
+ bGEiLCJDaHJpc3RlbnNlbiwgSGF5ZGVuIiwiQ3Nva2FzLCBNYXJ0b24iLCJG
56
+ YW50bCwgTmljb2xlIiwiSmFja3NvbiwgU2FtdWVsIEwuIiwiSm9obnNvbiwg
57
+ RmlvbmEiLCJMZWUsIENocmlzdG9waGVyIiwiTG9nYW4sIERhbmllbCIsIkx1
58
+ Y2FzLCBBbWFuZGEiLCJMdWNhcywgSmV0dCIsIkx1Y2FzLCBLYXRpZSIsIk1j
59
+ RGlhcm1pZCwgSWFuIiwiTWNHcmVnb3IsIEV3YW4iLCJNb3JyaXNvbiwgVGVt
60
+ dWVyYSIsIk96LCBGcmFuayIsIlBvcnRtYW4sIE5hdGFsaWUiLCJTbWl0cywg
61
+ SmltbXkiLCJUaG9tcHNvbiwgSmFjayIsIldvb2QsIE1hdHRoZXciXSwiZGly
62
+ ZWN0b3IiOlsiTHVjYXMsIEdlb3JnZSJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIy
63
+ NjkiXSwidGl0bGUiOlsiU3RhciBXYXJzOiBFcGlzb2RlIElJIC0gQXR0YWNr
64
+ IG9mIHRoZSBDbG9uZXMiXSwieWVhciI6WyIyMDAyIl19fSx7ImlkIjoidHQw
65
+ MDgwNjg0IiwiZGF0YSI6eyJhY3RvciI6WyJBbmRlcnNvbiwgQm9iIiwiQmFr
66
+ ZXIsIEtlbm55IiwiQm9uZWhpbGwsIFJpY2hhcmQiLCJDYXByaSwgTWFyayIs
67
+ IkRhbmllbHMsIEFudGhvbnkiLCJEaWFtb25kLCBQZXRlciIsIkZpc2hlciwg
68
+ Q2FycmllIiwiRm9yZCwgSGFycmlzb24iLCJHdWlubmVzcywgQWxlYyIsIkhh
69
+ bWlsbCwgTWFyayIsIkpvbmVzLCBKYW1lcyBFYXJsIiwiTWF5aGV3LCBQZXRl
70
+ ciIsIk1jUXVhcnJpZSwgUmFscGgiLCJNb3JzZSwgUmFscGgiLCJPeiwgRnJh
71
+ bmsiLCJQcm93c2UsIERhdmlkIiwiU2FudGlhZ28sIE1pY2hhZWwiLCJXaWxs
72
+ aWFtcywgQmlsbHkgRGVlIiwiV2lsbGlhbXMsIFRyZWF0IiwiV2luZ3JlZW4s
73
+ IEphc29uIl0sImRpcmVjdG9yIjpbIktlcnNobmVyLCBJcnZpbiJdLCJ0ZXh0
74
+ X3JlbGV2YW5jZSI6WyIyNjgiXSwidGl0bGUiOlsiU3RhciBXYXJzOiBFcGlz
75
+ b2RlIFYgLSBUaGUgRW1waXJlIFN0cmlrZXMgQmFjayJdLCJ5ZWFyIjpbIjE5
76
+ ODAiXX19LHsiaWQiOiJ0dDAxMjA5MTUiLCJkYXRhIjp7ImFjdG9yIjpbIkFy
77
+ bWl0YWdlLCBSaWNoYXJkIiwiQXVndXN0LCBQZXJuaWxsYSIsIkJlc3QsIEFo
78
+ bWVkIiwiQnVydHQsIEJlbiIsIkNoaWFuZywgRG91ZyIsIkNvcHBvbGEsIFJv
79
+ bWFuIiwiRGFuaWVscywgQW50aG9ueSIsIkZvcmQgRGF2aWVzLCBPbGl2ZXIi
80
+ LCJIYW1pbGwsIE5hdGhhbiIsIktub2xsLCBKb2huIiwiTGF1LCBLYW1heSIs
81
+ Ikxsb3lkLCBKYWtlIiwiTWNDYWxsdW0sIFJpY2siLCJNY0RpYXJtaWQsIElh
82
+ biIsIk1jR3JlZ29yLCBFd2FuIiwiTWVuZXplcywgSm/Do28gQ29zdGEiLCJO
83
+ ZWVzb24sIExpYW0iLCJQb3J0bWFuLCBOYXRhbGllIiwiUXVhcnNoaWUsIEh1
84
+ Z2giLCJXb29kLCBNYXR0aGV3Il0sImRpcmVjdG9yIjpbIkx1Y2FzLCBHZW9y
85
+ Z2UiXSwidGV4dF9yZWxldmFuY2UiOlsiMjY4Il0sInRpdGxlIjpbIlN0YXIg
86
+ V2FyczogRXBpc29kZSBJIC0gVGhlIFBoYW50b20gTWVuYWNlIl0sInllYXIi
87
+ OlsiMTk5OSJdfX0seyJpZCI6InR0MDA4NjE5MCIsImRhdGEiOnsiYWN0b3Ii
88
+ OlsiQWx0bWFuLCBKb2huIiwiQm9uZWhpbGwsIFJpY2hhcmQiLCJCcm9va2Us
89
+ IFBhdWwiLCJCdXJ0dCwgQmVuIiwiRGFuaWVscywgQW50aG9ueSIsIkRpYW1v
90
+ bmQsIFBldGVyIiwiRmlzaGVyLCBDYXJyaWUiLCJGb3JkLCBIYXJyaXNvbiIs
91
+ IkhhbWlsbCwgTWFyayIsIkpvbmVzLCBKYW1lcyBFYXJsIiwiTWFycXVhbmQs
92
+ IFJpY2hhcmQiLCJNYXloZXcsIFBldGVyIiwiTWNEaWFybWlkLCBJYW4iLCJN
93
+ Y1JhZSwgSGlsdG9uIiwiT3osIEZyYW5rIiwiUm95LCBEZWVwIiwiU2hhdywg
94
+ U2ViYXN0aWFuIiwiV2FyZCwgTGFycnkiLCJXZWxzaCwgUGF0IiwiV2lsbGlh
95
+ bXMsIEJpbGx5IERlZSJdLCJkaXJlY3RvciI6WyJNYXJxdWFuZCwgUmljaGFy
96
+ ZCJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIyNjgiXSwidGl0bGUiOlsiU3RhciBX
97
+ YXJzOiBFcGlzb2RlIFZJIC0gUmV0dXJuIG9mIHRoZSBKZWRpIl0sInllYXIi
98
+ OlsiMTk4MyJdfX0seyJpZCI6InR0MDEyMTc2NiIsImRhdGEiOnsiYWN0b3Ii
99
+ OlsiQmFpLCBMaW5nIiwiQnJ5YW50LCBHZW5lIiwiQ2FzdGxlLUh1Z2hlcywg
100
+ S2Vpc2hhIiwiQ2hyaXN0ZW5zZW4sIEhheWRlbiIsIkNvb2tlLCBCZW4iLCJE
101
+ YW5pZWxzLCBBbnRob255IiwiSmFja3NvbiwgU2FtdWVsIEwuIiwiSm9uZXMs
102
+ IEphbWVzIEVhcmwiLCJLbm9sbCwgSm9obiIsIkxlZSwgQ2hyaXN0b3BoZXIi
103
+ LCJMdWNhcywgR2VvcmdlIiwiTWNEaWFybWlkLCBJYW4iLCJNY0dyZWdvciwg
104
+ RXdhbiIsIk96LCBGcmFuayIsIlBvcnRtYW4sIE5hdGFsaWUiLCJTbWl0cywg
105
+ SmltbXkiLCJTcGVuY2UsIFBhdWwiLCJTdGVlbiwgU3V6aWUiLCJZYW1hZ3Vj
106
+ aGksIE1hc2EiLCJkZSBTb3V6YSBDb3JyZWEsIENhcm9saW5lIl0sImRpcmVj
107
+ dG9yIjpbIkx1Y2FzLCBHZW9yZ2UiXSwidGV4dF9yZWxldmFuY2UiOlsiMjY2
108
+ Il0sInRpdGxlIjpbIlN0YXIgV2FyczogRXBpc29kZSBJSUkgLSBSZXZlbmdl
109
+ IG9mIHRoZSBTaXRoIl0sInllYXIiOlsiMjAwNSJdfX1dfSwiZmFjZXRzIjp7
110
+ ImdlbnJlIjp7ImNvbnN0cmFpbnRzIjpbeyJ2YWx1ZSI6IkFjdGlvbiIsImNv
111
+ dW50Ijo3fSx7InZhbHVlIjoiQWR2ZW50dXJlIiwiY291bnQiOjd9LHsidmFs
112
+ dWUiOiJTY2ktRmkiLCJjb3VudCI6N30seyJ2YWx1ZSI6IkZhbnRhc3kiLCJj
113
+ b3VudCI6NX0seyJ2YWx1ZSI6IkFuaW1hdGlvbiIsImNvdW50IjoxfSx7InZh
114
+ bHVlIjoiRmFtaWx5IiwiY291bnQiOjF9LHsidmFsdWUiOiJUaHJpbGxlciIs
115
+ ImNvdW50IjoxfV19LCJ5ZWFyIjp7Im1pbiI6MTk3NywibWF4IjoyMDA4fX0s
116
+ ImluZm8iOnsicmlkIjoiOGEwNjIwZjZjNzJmZjNlNzYzMDZjZGU0NTNkZTFk
117
+ ZWI5YTlhZmNkMWFkMmM2ZWRmNGIwYzAwYzY2ZDliNjE2ZmU2OGJmNmNmZjM2
118
+ ZDcxZTgiLCJ0aW1lLW1zIjo0LCJjcHUtdGltZS1tcyI6MH19
119
+ http_version:
120
+ recorded_at: Thu, 02 May 2013 19:48:54 GMT
121
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,123 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://search-imdb-movies-pl6u4t3elu7dhsbwaqbsy3y6be.us-east-1.cloudsearch.amazonaws.com/2011-02-01/search?facet=genre,year&facet-genre-constraints='Sci-Fi'&q=star%20wars&return-fields=actor,director,title,year,text_relevance&size=10&start=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Q29udGVudC1UeXBl":
23
+ - !binary |-
24
+ YXBwbGljYXRpb24vanNvbg==
25
+ !binary "RGF0ZQ==":
26
+ - !binary |-
27
+ VGh1LCAwMiBNYXkgMjAxMyAyMTowNDoxMiBHTVQ=
28
+ !binary "U2VydmVy":
29
+ - !binary |-
30
+ U2VydmVy
31
+ !binary "Q29udGVudC1MZW5ndGg=":
32
+ - !binary |-
33
+ MzYzMw==
34
+ !binary "Q29ubmVjdGlvbg==":
35
+ - !binary |-
36
+ a2VlcC1hbGl2ZQ==
37
+ body:
38
+ encoding: ASCII-8BIT
39
+ string: !binary |-
40
+ eyJyYW5rIjoiLXRleHRfcmVsZXZhbmNlIiwibWF0Y2gtZXhwciI6IihsYWJl
41
+ bCAnc3RhciB3YXJzJykiLCJoaXRzIjp7ImZvdW5kIjo3LCJzdGFydCI6MCwi
42
+ aGl0IjpbeyJpZCI6InR0MTE4NTgzNCIsImRhdGEiOnsiYWN0b3IiOlsiQWJl
43
+ cmNyb21iaWUsIElhbiIsIkJha2VyLCBEZWUgQnJhZGxleSIsIkJ1cnRvbiwg
44
+ Q29yZXkiLCJFY2tzdGVpbiwgQXNobGV5IiwiRnV0dGVybWFuLCBOaWthIiwi
45
+ S2FuZSwgVG9tIiwiTGFudGVyLCBNYXR0IiwiVGFiZXIsIENhdGhlcmluZSIs
46
+ IlRheWxvciwgSmFtZXMgQXJub2xkIiwiV29vZCwgTWF0dGhldyJdLCJkaXJl
47
+ Y3RvciI6WyJGaWxvbmksIERhdmUiXSwidGV4dF9yZWxldmFuY2UiOlsiMzA3
48
+ Il0sInRpdGxlIjpbIlN0YXIgV2FyczogVGhlIENsb25lIFdhcnMiXSwieWVh
49
+ ciI6WyIyMDA4Il19fSx7ImlkIjoidHQwMDc2NzU5IiwiZGF0YSI6eyJhY3Rv
50
+ ciI6WyJCYWtlciwgS2VubnkiLCJDdXNoaW5nLCBQZXRlciIsIkRhbmllbHMs
51
+ IEFudGhvbnkiLCJEZSBBcmFnb24sIE1hcmlhIiwiRGlhbW9uZCwgUGV0ZXIi
52
+ LCJGaXNoZXIsIENhcnJpZSIsIkZvcmQsIEhhcnJpc29uIiwiR29mZmUsIFJ1
53
+ c3R5IiwiR3Vpbm5lc3MsIEFsZWMiLCJIYW1pbGwsIE1hcmsiLCJKb2huc3Rv
54
+ biwgSm9lIiwiSm9uZXMsIEphbWVzIEVhcmwiLCJMeW9ucywgRGVyZWsiLCJN
55
+ YXloZXcsIFBldGVyIiwiTWNDYWxsdW0sIFJpY2siLCJQcm93c2UsIERhdmlk
56
+ IiwiUmltbWVyLCBTaGFuZSIsIlRpZXJuZXksIE1hbGNvbG0iLCJUaXBwZXR0
57
+ LCBQaGlsIiwiV2FyZCwgTGFycnkiXSwiZGlyZWN0b3IiOlsiTHVjYXMsIEdl
58
+ b3JnZSJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIyNzAiXSwidGl0bGUiOlsiU3Rh
59
+ ciBXYXJzIl0sInllYXIiOlsiMTk3NyJdfX0seyJpZCI6InR0MDEyMTc2NSIs
60
+ ImRhdGEiOnsiYWN0b3IiOlsiQWxsZW4sIEFteSIsIkF1Z3VzdCwgUGVybmls
61
+ bGEiLCJDaHJpc3RlbnNlbiwgSGF5ZGVuIiwiQ3Nva2FzLCBNYXJ0b24iLCJG
62
+ YW50bCwgTmljb2xlIiwiSmFja3NvbiwgU2FtdWVsIEwuIiwiSm9obnNvbiwg
63
+ RmlvbmEiLCJMZWUsIENocmlzdG9waGVyIiwiTG9nYW4sIERhbmllbCIsIkx1
64
+ Y2FzLCBBbWFuZGEiLCJMdWNhcywgSmV0dCIsIkx1Y2FzLCBLYXRpZSIsIk1j
65
+ RGlhcm1pZCwgSWFuIiwiTWNHcmVnb3IsIEV3YW4iLCJNb3JyaXNvbiwgVGVt
66
+ dWVyYSIsIk96LCBGcmFuayIsIlBvcnRtYW4sIE5hdGFsaWUiLCJTbWl0cywg
67
+ SmltbXkiLCJUaG9tcHNvbiwgSmFjayIsIldvb2QsIE1hdHRoZXciXSwiZGly
68
+ ZWN0b3IiOlsiTHVjYXMsIEdlb3JnZSJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIy
69
+ NjkiXSwidGl0bGUiOlsiU3RhciBXYXJzOiBFcGlzb2RlIElJIC0gQXR0YWNr
70
+ IG9mIHRoZSBDbG9uZXMiXSwieWVhciI6WyIyMDAyIl19fSx7ImlkIjoidHQw
71
+ MDgwNjg0IiwiZGF0YSI6eyJhY3RvciI6WyJBbmRlcnNvbiwgQm9iIiwiQmFr
72
+ ZXIsIEtlbm55IiwiQm9uZWhpbGwsIFJpY2hhcmQiLCJDYXByaSwgTWFyayIs
73
+ IkRhbmllbHMsIEFudGhvbnkiLCJEaWFtb25kLCBQZXRlciIsIkZpc2hlciwg
74
+ Q2FycmllIiwiRm9yZCwgSGFycmlzb24iLCJHdWlubmVzcywgQWxlYyIsIkhh
75
+ bWlsbCwgTWFyayIsIkpvbmVzLCBKYW1lcyBFYXJsIiwiTWF5aGV3LCBQZXRl
76
+ ciIsIk1jUXVhcnJpZSwgUmFscGgiLCJNb3JzZSwgUmFscGgiLCJPeiwgRnJh
77
+ bmsiLCJQcm93c2UsIERhdmlkIiwiU2FudGlhZ28sIE1pY2hhZWwiLCJXaWxs
78
+ aWFtcywgQmlsbHkgRGVlIiwiV2lsbGlhbXMsIFRyZWF0IiwiV2luZ3JlZW4s
79
+ IEphc29uIl0sImRpcmVjdG9yIjpbIktlcnNobmVyLCBJcnZpbiJdLCJ0ZXh0
80
+ X3JlbGV2YW5jZSI6WyIyNjgiXSwidGl0bGUiOlsiU3RhciBXYXJzOiBFcGlz
81
+ b2RlIFYgLSBUaGUgRW1waXJlIFN0cmlrZXMgQmFjayJdLCJ5ZWFyIjpbIjE5
82
+ ODAiXX19LHsiaWQiOiJ0dDAxMjA5MTUiLCJkYXRhIjp7ImFjdG9yIjpbIkFy
83
+ bWl0YWdlLCBSaWNoYXJkIiwiQXVndXN0LCBQZXJuaWxsYSIsIkJlc3QsIEFo
84
+ bWVkIiwiQnVydHQsIEJlbiIsIkNoaWFuZywgRG91ZyIsIkNvcHBvbGEsIFJv
85
+ bWFuIiwiRGFuaWVscywgQW50aG9ueSIsIkZvcmQgRGF2aWVzLCBPbGl2ZXIi
86
+ LCJIYW1pbGwsIE5hdGhhbiIsIktub2xsLCBKb2huIiwiTGF1LCBLYW1heSIs
87
+ Ikxsb3lkLCBKYWtlIiwiTWNDYWxsdW0sIFJpY2siLCJNY0RpYXJtaWQsIElh
88
+ biIsIk1jR3JlZ29yLCBFd2FuIiwiTWVuZXplcywgSm/Do28gQ29zdGEiLCJO
89
+ ZWVzb24sIExpYW0iLCJQb3J0bWFuLCBOYXRhbGllIiwiUXVhcnNoaWUsIEh1
90
+ Z2giLCJXb29kLCBNYXR0aGV3Il0sImRpcmVjdG9yIjpbIkx1Y2FzLCBHZW9y
91
+ Z2UiXSwidGV4dF9yZWxldmFuY2UiOlsiMjY4Il0sInRpdGxlIjpbIlN0YXIg
92
+ V2FyczogRXBpc29kZSBJIC0gVGhlIFBoYW50b20gTWVuYWNlIl0sInllYXIi
93
+ OlsiMTk5OSJdfX0seyJpZCI6InR0MDA4NjE5MCIsImRhdGEiOnsiYWN0b3Ii
94
+ OlsiQWx0bWFuLCBKb2huIiwiQm9uZWhpbGwsIFJpY2hhcmQiLCJCcm9va2Us
95
+ IFBhdWwiLCJCdXJ0dCwgQmVuIiwiRGFuaWVscywgQW50aG9ueSIsIkRpYW1v
96
+ bmQsIFBldGVyIiwiRmlzaGVyLCBDYXJyaWUiLCJGb3JkLCBIYXJyaXNvbiIs
97
+ IkhhbWlsbCwgTWFyayIsIkpvbmVzLCBKYW1lcyBFYXJsIiwiTWFycXVhbmQs
98
+ IFJpY2hhcmQiLCJNYXloZXcsIFBldGVyIiwiTWNEaWFybWlkLCBJYW4iLCJN
99
+ Y1JhZSwgSGlsdG9uIiwiT3osIEZyYW5rIiwiUm95LCBEZWVwIiwiU2hhdywg
100
+ U2ViYXN0aWFuIiwiV2FyZCwgTGFycnkiLCJXZWxzaCwgUGF0IiwiV2lsbGlh
101
+ bXMsIEJpbGx5IERlZSJdLCJkaXJlY3RvciI6WyJNYXJxdWFuZCwgUmljaGFy
102
+ ZCJdLCJ0ZXh0X3JlbGV2YW5jZSI6WyIyNjgiXSwidGl0bGUiOlsiU3RhciBX
103
+ YXJzOiBFcGlzb2RlIFZJIC0gUmV0dXJuIG9mIHRoZSBKZWRpIl0sInllYXIi
104
+ OlsiMTk4MyJdfX0seyJpZCI6InR0MDEyMTc2NiIsImRhdGEiOnsiYWN0b3Ii
105
+ OlsiQmFpLCBMaW5nIiwiQnJ5YW50LCBHZW5lIiwiQ2FzdGxlLUh1Z2hlcywg
106
+ S2Vpc2hhIiwiQ2hyaXN0ZW5zZW4sIEhheWRlbiIsIkNvb2tlLCBCZW4iLCJE
107
+ YW5pZWxzLCBBbnRob255IiwiSmFja3NvbiwgU2FtdWVsIEwuIiwiSm9uZXMs
108
+ IEphbWVzIEVhcmwiLCJLbm9sbCwgSm9obiIsIkxlZSwgQ2hyaXN0b3BoZXIi
109
+ LCJMdWNhcywgR2VvcmdlIiwiTWNEaWFybWlkLCBJYW4iLCJNY0dyZWdvciwg
110
+ RXdhbiIsIk96LCBGcmFuayIsIlBvcnRtYW4sIE5hdGFsaWUiLCJTbWl0cywg
111
+ SmltbXkiLCJTcGVuY2UsIFBhdWwiLCJTdGVlbiwgU3V6aWUiLCJZYW1hZ3Vj
112
+ aGksIE1hc2EiLCJkZSBTb3V6YSBDb3JyZWEsIENhcm9saW5lIl0sImRpcmVj
113
+ dG9yIjpbIkx1Y2FzLCBHZW9yZ2UiXSwidGV4dF9yZWxldmFuY2UiOlsiMjY2
114
+ Il0sInRpdGxlIjpbIlN0YXIgV2FyczogRXBpc29kZSBJSUkgLSBSZXZlbmdl
115
+ IG9mIHRoZSBTaXRoIl0sInllYXIiOlsiMjAwNSJdfX1dfSwiZmFjZXRzIjp7
116
+ ImdlbnJlIjp7ImNvbnN0cmFpbnRzIjpbeyJ2YWx1ZSI6IlNjaS1GaSIsImNv
117
+ dW50Ijo3fV19LCJ5ZWFyIjp7Im1pbiI6MTk3NywibWF4IjoyMDA4fX0sImlu
118
+ Zm8iOnsicmlkIjoiOGEwNjIwZjZjNzJmZjNlNzYzMDZjZGU0NTNkZTFkZWJl
119
+ ZmU5YzBmZDQ0Y2Y4MmU5ODM3NzJlZDUxMGVkYzY3Zjg1ZGU0YjYwNDg4NjI0
120
+ YTIiLCJ0aW1lLW1zIjozLCJjcHUtdGltZS1tcyI6MH19
121
+ http_version:
122
+ recorded_at: Thu, 02 May 2013 21:04:15 GMT
123
+ recorded_with: VCR 2.4.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloud_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-03 00:00:00.000000000 Z
12
+ date: 2013-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry
@@ -157,6 +157,8 @@ files:
157
157
  - spec/fixtures/vcr_cassettes/index/request/add.yml
158
158
  - spec/fixtures/vcr_cassettes/index/request/add_in_batch.yml
159
159
  - spec/fixtures/vcr_cassettes/index/request/delete.yml
160
+ - spec/fixtures/vcr_cassettes/search/request/facets.yml
161
+ - spec/fixtures/vcr_cassettes/search/request/facets_with_constraints.yml
160
162
  - spec/fixtures/vcr_cassettes/search/request/full.yml
161
163
  - spec/fixtures/vcr_cassettes/search/request/paginated.yml
162
164
  - spec/fixtures/vcr_cassettes/search/request/paginated_first_page.yml
@@ -175,12 +177,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
177
  - - ! '>='
176
178
  - !ruby/object:Gem::Version
177
179
  version: '0'
180
+ segments:
181
+ - 0
182
+ hash: -425628633899078667
178
183
  required_rubygems_version: !ruby/object:Gem::Requirement
179
184
  none: false
180
185
  requirements:
181
186
  - - ! '>='
182
187
  - !ruby/object:Gem::Version
183
188
  version: '0'
189
+ segments:
190
+ - 0
191
+ hash: -425628633899078667
184
192
  requirements: []
185
193
  rubyforge_project:
186
194
  rubygems_version: 1.8.24
@@ -198,10 +206,11 @@ test_files:
198
206
  - spec/fixtures/vcr_cassettes/index/request/add.yml
199
207
  - spec/fixtures/vcr_cassettes/index/request/add_in_batch.yml
200
208
  - spec/fixtures/vcr_cassettes/index/request/delete.yml
209
+ - spec/fixtures/vcr_cassettes/search/request/facets.yml
210
+ - spec/fixtures/vcr_cassettes/search/request/facets_with_constraints.yml
201
211
  - spec/fixtures/vcr_cassettes/search/request/full.yml
202
212
  - spec/fixtures/vcr_cassettes/search/request/paginated.yml
203
213
  - spec/fixtures/vcr_cassettes/search/request/paginated_first_page.yml
204
214
  - spec/fixtures/vcr_cassettes/search/request/paginated_second_page.yml
205
215
  - spec/spec_helper.rb
206
216
  - spec/support/vcr.rb
207
- has_rdoc: