cloud_search 0.1.9 → 0.2.0

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.
@@ -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: