sunspot 2.2.7 → 2.2.8

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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/Appraisals +7 -0
  5. data/Gemfile +0 -8
  6. data/gemfiles/.gitkeep +0 -0
  7. data/lib/sunspot/dsl/scope.rb +6 -1
  8. data/lib/sunspot/field.rb +11 -0
  9. data/lib/sunspot/field_factory.rb +6 -2
  10. data/lib/sunspot/query/bbox.rb +5 -1
  11. data/lib/sunspot/query/restriction.rb +11 -0
  12. data/lib/sunspot/search/hit_enumerable.rb +4 -1
  13. data/lib/sunspot/search/standard_search.rb +2 -3
  14. data/lib/sunspot/version.rb +1 -1
  15. data/spec/api/adapters_spec.rb +19 -19
  16. data/spec/api/batcher_spec.rb +15 -15
  17. data/spec/api/binding_spec.rb +3 -3
  18. data/spec/api/class_set_spec.rb +3 -3
  19. data/spec/api/hit_enumerable_spec.rb +32 -9
  20. data/spec/api/indexer/attributes_spec.rb +31 -31
  21. data/spec/api/indexer/batch_spec.rb +8 -7
  22. data/spec/api/indexer/dynamic_fields_spec.rb +8 -8
  23. data/spec/api/indexer/fixed_fields_spec.rb +12 -12
  24. data/spec/api/indexer/fulltext_spec.rb +8 -8
  25. data/spec/api/indexer/removal_spec.rb +14 -14
  26. data/spec/api/indexer_spec.rb +2 -2
  27. data/spec/api/query/advanced_manipulation_examples.rb +3 -3
  28. data/spec/api/query/connectives_examples.rb +26 -14
  29. data/spec/api/query/dsl_spec.rb +17 -9
  30. data/spec/api/query/dynamic_fields_examples.rb +18 -18
  31. data/spec/api/query/faceting_examples.rb +62 -62
  32. data/spec/api/query/fulltext_examples.rb +56 -55
  33. data/spec/api/query/function_spec.rb +26 -26
  34. data/spec/api/query/geo_examples.rb +6 -6
  35. data/spec/api/query/group_spec.rb +6 -6
  36. data/spec/api/query/highlighting_examples.rb +26 -26
  37. data/spec/api/query/join_spec.rb +2 -2
  38. data/spec/api/query/more_like_this_spec.rb +29 -29
  39. data/spec/api/query/ordering_pagination_examples.rb +25 -25
  40. data/spec/api/query/scope_examples.rb +39 -39
  41. data/spec/api/query/spatial_examples.rb +3 -3
  42. data/spec/api/query/spellcheck_examples.rb +3 -3
  43. data/spec/api/query/standard_spec.rb +1 -1
  44. data/spec/api/query/stats_examples.rb +8 -8
  45. data/spec/api/query/text_field_scoping_examples.rb +5 -5
  46. data/spec/api/query/types_spec.rb +4 -4
  47. data/spec/api/search/cursor_paginated_collection_spec.rb +12 -12
  48. data/spec/api/search/dynamic_fields_spec.rb +4 -4
  49. data/spec/api/search/faceting_spec.rb +55 -52
  50. data/spec/api/search/highlighting_spec.rb +7 -7
  51. data/spec/api/search/hits_spec.rb +29 -29
  52. data/spec/api/search/paginated_collection_spec.rb +18 -18
  53. data/spec/api/search/results_spec.rb +13 -13
  54. data/spec/api/search/search_spec.rb +3 -3
  55. data/spec/api/search/stats_spec.rb +10 -10
  56. data/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +19 -18
  57. data/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +9 -9
  58. data/spec/api/session_proxy/master_slave_session_proxy_spec.rb +10 -6
  59. data/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +10 -10
  60. data/spec/api/session_proxy/sharding_session_proxy_spec.rb +14 -13
  61. data/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +2 -2
  62. data/spec/api/session_proxy/spec_helper.rb +1 -1
  63. data/spec/api/session_proxy/thread_local_session_proxy_spec.rb +9 -5
  64. data/spec/api/session_spec.rb +42 -42
  65. data/spec/api/sunspot_spec.rb +4 -4
  66. data/spec/integration/atomic_updates_spec.rb +25 -11
  67. data/spec/integration/dynamic_fields_spec.rb +10 -10
  68. data/spec/integration/faceting_spec.rb +39 -39
  69. data/spec/integration/field_grouping_spec.rb +16 -16
  70. data/spec/integration/field_lists_spec.rb +41 -0
  71. data/spec/integration/geospatial_spec.rb +19 -8
  72. data/spec/integration/highlighting_spec.rb +5 -5
  73. data/spec/integration/indexing_spec.rb +5 -5
  74. data/spec/integration/keyword_search_spec.rb +47 -45
  75. data/spec/integration/local_search_spec.rb +4 -4
  76. data/spec/integration/more_like_this_spec.rb +7 -7
  77. data/spec/integration/scoped_search_spec.rb +107 -107
  78. data/spec/integration/spellcheck_spec.rb +52 -7
  79. data/spec/integration/stats_spec.rb +10 -10
  80. data/spec/integration/stored_fields_spec.rb +1 -1
  81. data/spec/integration/test_pagination.rb +4 -4
  82. data/spec/integration/unicode_spec.rb +1 -1
  83. data/spec/mocks/post.rb +5 -1
  84. data/spec/spec_helper.rb +11 -6
  85. data/sunspot.gemspec +3 -1
  86. metadata +40 -7
@@ -14,38 +14,38 @@ describe 'search with highlighting results', :type => :search do
14
14
  end
15
15
 
16
16
  it 'returns all highlights' do
17
- @search.hits.last.should have(3).highlights
17
+ expect(@search.hits.last.highlights.size).to eq(3)
18
18
  end
19
19
 
20
20
  it 'returns all highlights for a specified field' do
21
- @search.hits.last.should have(2).highlights(:body)
21
+ expect(@search.hits.last.highlights(:body).size).to eq(2)
22
22
  end
23
23
 
24
24
  it 'returns first highlight for a specified field' do
25
- @search.hits.first.highlight(:title).format.should == 'one <em>two</em> three'
25
+ expect(@search.hits.first.highlight(:title).format).to eq('one <em>two</em> three')
26
26
  end
27
27
 
28
28
  it 'returns an empty array if a given field does not have a highlight' do
29
- @search.hits.first.highlights(:body).should == []
29
+ expect(@search.hits.first.highlights(:body)).to eq([])
30
30
  end
31
31
 
32
32
  it 'formats hits with <em> by default' do
33
33
  highlight = @search.hits.first.highlights(:title).first.formatted
34
- highlight.should == 'one <em>two</em> three'
34
+ expect(highlight).to eq('one <em>two</em> three')
35
35
  end
36
36
 
37
37
  it 'formats hits with provided block' do
38
38
  highlight = @search.hits.first.highlights(:title).first.format do |word|
39
39
  "<i>#{word}</i>"
40
40
  end
41
- highlight.should == 'one <i>two</i> three'
41
+ expect(highlight).to eq('one <i>two</i> three')
42
42
  end
43
43
 
44
44
  it 'handles multiple highlighted words' do
45
45
  highlight = @search.hits.last.highlights(:body).last.format do |word|
46
46
  "<b>#{word}</b>"
47
47
  end
48
- highlight.should == '<b>eight</b> nine <b>ten</b>'
48
+ expect(highlight).to eq('<b>eight</b> nine <b>ten</b>')
49
49
  end
50
50
 
51
51
  private
@@ -5,37 +5,37 @@ describe 'hits', :type => :search do
5
5
  post_1, post_2 = Array.new(2) { Post.new }
6
6
  stub_results(post_1, post_2)
7
7
  %w(load load_all).each do |message|
8
- MockAdapter::DataAccessor.should_not_receive(message)
8
+ expect(MockAdapter::DataAccessor).not_to receive(message)
9
9
  end
10
- session.search(Post).hits.map do |hit|
10
+ expect(session.search(Post).hits.map do |hit|
11
11
  [hit.class_name, hit.primary_key]
12
- end.should == [['Post', post_1.id.to_s], ['Post', post_2.id.to_s]]
12
+ end).to eq([['Post', post_1.id.to_s], ['Post', post_2.id.to_s]])
13
13
  end
14
14
 
15
15
  it 'returns search total as attribute of hits' do
16
16
  stub_results(Post.new, 4)
17
- session.search(Post) do
17
+ expect(session.search(Post) do
18
18
  paginate(:page => 1)
19
- end.hits.total_entries.should == 4
19
+ end.hits.total_entries).to eq(4)
20
20
  end
21
21
 
22
22
  it 'returns search total as attribute of verified hits' do
23
23
  stub_results(Post.new, 4)
24
- session.search(Post) do
24
+ expect(session.search(Post) do
25
25
  paginate(:page => 1)
26
- end.hits(:verify => true).total_entries.should == 4
26
+ end.hits(:verify => true).total_entries).to eq(4)
27
27
  end
28
28
 
29
29
  it 'should return instance from hit' do
30
30
  posts = Array.new(2) { Post.new }
31
31
  stub_results(*posts)
32
- session.search(Post).hits.first.instance.should == posts.first
32
+ expect(session.search(Post).hits.first.instance).to eq(posts.first)
33
33
  end
34
34
 
35
35
  it 'should return the instance primary key when you use it as a param' do
36
36
  posts = Array.new(2) { Post.new }
37
37
  stub_results(*posts)
38
- session.search(Post).hits.first.to_param.should == posts.first.id.to_s
38
+ expect(session.search(Post).hits.first.to_param).to eq(posts.first.id.to_s)
39
39
  end
40
40
 
41
41
  it 'should provide iterator over hits with instances' do
@@ -49,8 +49,8 @@ describe 'hits', :type => :search do
49
49
  results << result
50
50
  end
51
51
 
52
- hits.should have(2).hits
53
- results.should have(2).results
52
+ expect(hits.size).to eq(2)
53
+ expect(results.size).to eq(2)
54
54
  end
55
55
 
56
56
  it 'should provide an Enumerator over hits with instances' do
@@ -59,9 +59,9 @@ describe 'hits', :type => :search do
59
59
  search = session.search(Post)
60
60
  hits, results = [], []
61
61
  search.each_hit_with_result.with_index do |(hit, result), index|
62
- hit.should be_kind_of(Sunspot::Search::Hit)
63
- result.should be_kind_of(Post)
64
- index.should be_kind_of(Integer)
62
+ expect(hit).to be_kind_of(Sunspot::Search::Hit)
63
+ expect(result).to be_kind_of(Post)
64
+ expect(index).to be_kind_of(Integer)
65
65
  end
66
66
  end
67
67
 
@@ -71,9 +71,9 @@ describe 'hits', :type => :search do
71
71
  search = session.search(Post)
72
72
  search.hits.first.instance
73
73
  %w(load load_all).each do |message|
74
- MockAdapter::DataAccessor.should_not_receive(message)
74
+ expect(MockAdapter::DataAccessor).not_to receive(message)
75
75
  end
76
- search.hits.last.instance.should == posts.last
76
+ expect(search.hits.last.instance).to eq(posts.last)
77
77
  end
78
78
 
79
79
  it 'should return only hits whose referenced object exists in the data store if :verify option passed' do
@@ -81,7 +81,7 @@ describe 'hits', :type => :search do
81
81
  posts.last.destroy
82
82
  stub_results(*posts)
83
83
  search = session.search(Post)
84
- search.hits(:verify => true).map { |hit| hit.instance }.should == posts[0..0]
84
+ expect(search.hits(:verify => true).map { |hit| hit.instance }).to eq(posts[0..0])
85
85
  end
86
86
 
87
87
  it 'should return verified and unverified hits from the same search' do
@@ -89,59 +89,59 @@ describe 'hits', :type => :search do
89
89
  posts.last.destroy
90
90
  stub_results(*posts)
91
91
  search = session.search(Post)
92
- search.hits(:verify => true).map { |hit| hit.instance }.should == posts[0..0]
93
- search.hits.map { |hit| hit.instance }.should == [posts.first, nil]
92
+ expect(search.hits(:verify => true).map { |hit| hit.instance }).to eq(posts[0..0])
93
+ expect(search.hits.map { |hit| hit.instance }).to eq([posts.first, nil])
94
94
  end
95
95
 
96
96
  it 'should attach score to hits' do
97
97
  stub_full_results('instance' => Post.new, 'score' => 1.23)
98
- session.search(Post).hits.first.score.should == 1.23
98
+ expect(session.search(Post).hits.first.score).to eq(1.23)
99
99
  end
100
100
 
101
101
  it 'should return stored field values in hits' do
102
102
  stub_full_results('instance' => Post.new, 'title_ss' => 'Title')
103
- session.search(Post).hits.first.stored(:title).should == 'Title'
103
+ expect(session.search(Post).hits.first.stored(:title)).to eq('Title')
104
104
  end
105
105
 
106
106
  it 'should return stored field values for searches against multiple types' do
107
107
  stub_full_results('instance' => Post.new, 'title_ss' => 'Title')
108
- session.search(Post, Namespaced::Comment).hits.first.stored(:title).should == 'Title'
108
+ expect(session.search(Post, Namespaced::Comment).hits.first.stored(:title)).to eq('Title')
109
109
  end
110
110
 
111
111
  it 'should return stored field values for searches against base type when subtype matches' do
112
112
  class SubclassedPost < Post; end;
113
113
  stub_full_results('instance' => SubclassedPost.new, 'title_ss' => 'Title')
114
- session.search(Post).hits.first.stored(:title).should == 'Title'
114
+ expect(session.search(Post).hits.first.stored(:title)).to eq('Title')
115
115
  end
116
116
 
117
117
  it 'should return stored text fields' do
118
118
  stub_full_results('instance' => Post.new, 'body_textsv' => 'Body')
119
- session.search(Post, Namespaced::Comment).hits.first.stored(:body).should == 'Body'
119
+ expect(session.search(Post, Namespaced::Comment).hits.first.stored(:body)).to eq('Body')
120
120
  end
121
121
 
122
122
  it 'should return stored boolean fields' do
123
123
  stub_full_results('instance' => Post.new, 'featured_bs' => true)
124
- session.search(Post, Namespaced::Comment).hits.first.stored(:featured).should be_true
124
+ expect(session.search(Post, Namespaced::Comment).hits.first.stored(:featured)).to be(true)
125
125
  end
126
126
 
127
127
  it 'should return stored boolean fields that evaluate to false' do
128
128
  stub_full_results('instance' => Post.new, 'featured_bs' => false)
129
- session.search(Post, Namespaced::Comment).hits.first.stored(:featured).should == false
129
+ expect(session.search(Post, Namespaced::Comment).hits.first.stored(:featured)).to eq(false)
130
130
  end
131
131
 
132
132
  it 'should return stored dynamic fields' do
133
133
  stub_full_results('instance' => Post.new, 'custom_string:test_ss' => 'Custom')
134
- session.search(Post, Namespaced::Comment).hits.first.stored(:custom_string, :test).should == 'Custom'
134
+ expect(session.search(Post, Namespaced::Comment).hits.first.stored(:custom_string, :test)).to eq('Custom')
135
135
  end
136
136
 
137
137
  it 'should typecast stored field values in hits' do
138
138
  time = Time.utc(2008, 7, 8, 2, 45)
139
139
  stub_full_results('instance' => Post.new, 'last_indexed_at_ds' => time.xmlschema)
140
- session.search(Post).hits.first.stored(:last_indexed_at).should == time
140
+ expect(session.search(Post).hits.first.stored(:last_indexed_at)).to eq(time)
141
141
  end
142
142
 
143
143
  it 'should return stored values for multi-valued fields' do
144
144
  stub_full_results('instance' => User.new, 'role_ids_ims' => %w(1 4 5))
145
- session.search(User).hits.first.stored(:role_ids).should == [1, 4, 5]
145
+ expect(session.search(User).hits.first.stored(:role_ids)).to eq([1, 4, 5])
146
146
  end
147
147
  end
@@ -3,7 +3,7 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
3
3
  describe "PaginatedCollection" do
4
4
  subject { Sunspot::Search::PaginatedCollection.new [], 1, 10, 20 }
5
5
 
6
- it { subject.should be_an(Array) }
6
+ it { expect(subject).to be_an(Array) }
7
7
 
8
8
  describe "#send" do
9
9
  it 'should allow send' do
@@ -13,37 +13,37 @@ describe "PaginatedCollection" do
13
13
 
14
14
  describe "#respond_to?" do
15
15
  it 'should return true for current_page' do
16
- subject.respond_to?(:current_page).should be_true
16
+ expect(subject.respond_to?(:current_page)).to be(true)
17
17
  end
18
18
  end
19
19
 
20
20
  context "behaves like a WillPaginate::Collection" do
21
- it { subject.total_entries.should eql(20) }
22
- it { subject.total_pages.should eql(2) }
23
- it { subject.current_page.should eql(1) }
24
- it { subject.per_page.should eql(10) }
25
- it { subject.previous_page.should be_nil }
26
- it { subject.prev_page.should be_nil }
27
- it { subject.next_page.should eql(2) }
28
- it { subject.out_of_bounds?.should_not be_true }
29
- it { subject.offset.should eql(0) }
21
+ it { expect(subject.total_entries).to eql(20) }
22
+ it { expect(subject.total_pages).to eql(2) }
23
+ it { expect(subject.current_page).to eql(1) }
24
+ it { expect(subject.per_page).to eql(10) }
25
+ it { expect(subject.previous_page).to be_nil }
26
+ it { expect(subject.prev_page).to be_nil }
27
+ it { expect(subject.next_page).to eql(2) }
28
+ it { expect(subject.out_of_bounds?).not_to be(true) }
29
+ it { expect(subject.offset).to eql(0) }
30
30
 
31
31
  it 'should allow setting total_count' do
32
32
  subject.total_count = 1
33
- subject.total_count.should eql(1)
33
+ expect(subject.total_count).to eql(1)
34
34
  end
35
35
 
36
36
  it 'should allow setting total_entries' do
37
37
  subject.total_entries = 1
38
- subject.total_entries.should eql(1)
38
+ expect(subject.total_entries).to eql(1)
39
39
  end
40
40
  end
41
41
 
42
42
  context "behaves like Kaminari" do
43
- it { subject.total_count.should eql(20) }
44
- it { subject.num_pages.should eql(2) }
45
- it { subject.limit_value.should eql(10) }
46
- it { subject.first_page?.should be_true }
47
- it { subject.last_page?.should_not be_true }
43
+ it { expect(subject.total_count).to eql(20) }
44
+ it { expect(subject.num_pages).to eql(2) }
45
+ it { expect(subject.limit_value).to eql(10) }
46
+ it { expect(subject.first_page?).to be(true) }
47
+ it { expect(subject.last_page?).not_to be(true) }
48
48
  end
49
49
  end
@@ -4,15 +4,15 @@ describe 'search results', :type => :search do
4
4
  it 'loads single result' do
5
5
  post = Post.new
6
6
  stub_results(post)
7
- session.search(Post).results.should == [post]
7
+ expect(session.search(Post).results).to eq([post])
8
8
  end
9
9
 
10
10
  it 'loads multiple results in order' do
11
11
  post_1, post_2 = Post.new, Post.new
12
12
  stub_results(post_1, post_2)
13
- session.search(Post).results.should == [post_1, post_2]
13
+ expect(session.search(Post).results).to eq([post_1, post_2])
14
14
  stub_results(post_2, post_1)
15
- session.search(Post).results.should == [post_2, post_1]
15
+ expect(session.search(Post).results).to eq([post_2, post_1])
16
16
  end
17
17
 
18
18
  # This is a reduction of a crazy bug I found in production where some hits
@@ -22,42 +22,42 @@ describe 'search results', :type => :search do
22
22
  Namespaced::Comment.reset!
23
23
  results = [Post.new, Namespaced::Comment.new]
24
24
  stub_results(*results)
25
- session.search(Post, Namespaced::Comment).results.should == results
25
+ expect(session.search(Post, Namespaced::Comment).results).to eq(results)
26
26
  end
27
27
 
28
28
  it 'gracefully returns empty results when response is nil' do
29
29
  stub_nil_results
30
- session.search(Post).results.should == []
30
+ expect(session.search(Post).results).to eq([])
31
31
  end
32
32
 
33
33
  it 'returns search total as attribute of results' do
34
34
  stub_results(Post.new, 4)
35
- session.search(Post) do
35
+ expect(session.search(Post) do
36
36
  paginate(:page => 1)
37
- end.results.total_entries.should == 4
37
+ end.results.total_entries).to eq(4)
38
38
  end
39
39
 
40
40
  it 'returns total' do
41
41
  stub_results(Post.new, Post.new, 4)
42
- session.search(Post) { paginate(:page => 1) }.total.should == 4
42
+ expect(session.search(Post) { paginate(:page => 1) }.total).to eq(4)
43
43
  end
44
44
 
45
45
  it 'returns query time' do
46
46
  stub_nil_results
47
47
  connection.response['responseHeader'] = { 'QTime' => 42 }
48
- session.search(Post) { paginate(:page => 1) }.query_time.should == 42
48
+ expect(session.search(Post) { paginate(:page => 1) }.query_time).to eq(42)
49
49
  end
50
50
 
51
51
  it 'returns total for nil search' do
52
52
  stub_nil_results
53
- session.search(Post).total.should == 0
53
+ expect(session.search(Post).total).to eq(0)
54
54
  end
55
55
 
56
56
  it 'returns available results if some results are not available from data store' do
57
57
  posts = [Post.new, Post.new]
58
58
  posts.last.destroy
59
59
  stub_results(*posts)
60
- session.search(Post).results.should == posts[0..0]
60
+ expect(session.search(Post).results).to eq(posts[0..0])
61
61
  end
62
62
 
63
63
  it 'does not attempt to query the data store more than once when results are unavailable' do
@@ -65,8 +65,8 @@ describe 'search results', :type => :search do
65
65
  posts.each { |post| post.destroy }
66
66
  stub_results(*posts)
67
67
  search = session.search(Post) do
68
- data_accessor_for(Post).should_receive(:load_all).once.and_return([])
68
+ expect(data_accessor_for(Post)).to receive(:load_all).once.and_return([])
69
69
  end
70
- search.results.should == []
70
+ expect(search.results).to eq([])
71
71
  end
72
72
  end
@@ -6,7 +6,7 @@ describe Sunspot::Search do
6
6
  search = session.search Post do
7
7
  data_accessor_for(Post).custom_title = 'custom title'
8
8
  end
9
- search.results.first.title.should == 'custom title'
9
+ expect(search.results.first.title).to eq('custom title')
10
10
  end
11
11
 
12
12
  it 'should re-execute search' do
@@ -14,10 +14,10 @@ describe Sunspot::Search do
14
14
 
15
15
  stub_results(post_1)
16
16
  search = session.search Post
17
- search.results.should == [post_1]
17
+ expect(search.results).to eq([post_1])
18
18
 
19
19
  stub_results(post_2)
20
20
  search.execute!
21
- search.results.should == [post_2]
21
+ expect(search.results).to eq([post_2])
22
22
  end
23
23
  end
@@ -6,7 +6,7 @@ describe 'stats', :type => :search do
6
6
  result = session.search Post do
7
7
  stats :average_rating
8
8
  end
9
- result.stats(:average_rating).field_name.should == :average_rating
9
+ expect(result.stats(:average_rating).field_name).to eq(:average_rating)
10
10
  end
11
11
 
12
12
  it 'returns min for stats field' do
@@ -14,7 +14,7 @@ describe 'stats', :type => :search do
14
14
  result = session.search Post do
15
15
  stats :average_rating
16
16
  end
17
- result.stats(:average_rating).min.should == 1.0
17
+ expect(result.stats(:average_rating).min).to eq(1.0)
18
18
  end
19
19
 
20
20
  it 'returns max for stats field' do
@@ -22,7 +22,7 @@ describe 'stats', :type => :search do
22
22
  result = session.search Post do
23
23
  stats :average_rating
24
24
  end
25
- result.stats(:average_rating).max.should == 5.0
25
+ expect(result.stats(:average_rating).max).to eq(5.0)
26
26
  end
27
27
 
28
28
  it 'returns count for stats field' do
@@ -30,7 +30,7 @@ describe 'stats', :type => :search do
30
30
  result = session.search Post do
31
31
  stats :average_rating
32
32
  end
33
- result.stats(:average_rating).count.should == 120
33
+ expect(result.stats(:average_rating).count).to eq(120)
34
34
  end
35
35
 
36
36
  it 'returns sum for stats field' do
@@ -38,7 +38,7 @@ describe 'stats', :type => :search do
38
38
  result = session.search Post do
39
39
  stats :average_rating
40
40
  end
41
- result.stats(:average_rating).sum.should == 2200.0
41
+ expect(result.stats(:average_rating).sum).to eq(2200.0)
42
42
  end
43
43
 
44
44
  it 'returns facet rows for stats field' do
@@ -51,7 +51,7 @@ describe 'stats', :type => :search do
51
51
  facet :featured
52
52
  end
53
53
  end
54
- stats_facet_values(result, :average_rating, :featured).should == [false, true]
54
+ expect(stats_facet_values(result, :average_rating, :featured)).to eq([false, true])
55
55
  end
56
56
 
57
57
  it 'returns facet stats for stats field' do
@@ -63,8 +63,8 @@ describe 'stats', :type => :search do
63
63
  facet :featured
64
64
  end
65
65
  end
66
- stats_facet_stats(result, :average_rating, :featured, true).min.should == 2.0
67
- stats_facet_stats(result, :average_rating, :featured, true).max.should == 4.0
66
+ expect(stats_facet_stats(result, :average_rating, :featured, true).min).to eq(2.0)
67
+ expect(stats_facet_stats(result, :average_rating, :featured, true).max).to eq(4.0)
68
68
  end
69
69
 
70
70
  it 'returns instantiated stats facet values' do
@@ -76,7 +76,7 @@ describe 'stats', :type => :search do
76
76
  facet :blog_id
77
77
  end
78
78
  end
79
- search.stats(:average_rating).facet(:blog_id).rows.map { |row| row.instance }.should == blogs
79
+ expect(search.stats(:average_rating).facet(:blog_id).rows.map { |row| row.instance }).to eq(blogs)
80
80
  end
81
81
 
82
82
  it 'only returns verified instances when requested' do
@@ -89,6 +89,6 @@ describe 'stats', :type => :search do
89
89
  facet :blog_id
90
90
  end
91
91
  end
92
- search.stats(:average_rating).facet(:blog_id).rows(:verified => true).map { |row| row.instance }.should == [blog]
92
+ expect(search.stats(:average_rating).facet(:blog_id).rows(:verified => true).map { |row| row.instance }).to eq([blog])
93
93
  end
94
94
  end