thinking-sphinx 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -2
  3. data/Appraisals +13 -0
  4. data/Gemfile +2 -1
  5. data/HISTORY +19 -0
  6. data/README.textile +3 -2
  7. data/gemfiles/rails_3_2.gemfile +2 -1
  8. data/gemfiles/rails_4_0.gemfile +2 -1
  9. data/gemfiles/rails_4_1.gemfile +2 -1
  10. data/gemfiles/rails_4_2.gemfile +2 -1
  11. data/gemfiles/rails_5_0.gemfile +12 -0
  12. data/lib/thinking_sphinx.rb +2 -0
  13. data/lib/thinking_sphinx/active_record/attribute/type.rb +17 -3
  14. data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +12 -4
  15. data/lib/thinking_sphinx/active_record/database_adapters.rb +1 -1
  16. data/lib/thinking_sphinx/active_record/sql_builder/query.rb +4 -0
  17. data/lib/thinking_sphinx/active_record/sql_source.rb +1 -1
  18. data/lib/thinking_sphinx/configuration.rb +3 -2
  19. data/lib/thinking_sphinx/connection.rb +23 -10
  20. data/lib/thinking_sphinx/deltas/index_job.rb +6 -2
  21. data/lib/thinking_sphinx/errors.rb +25 -0
  22. data/lib/thinking_sphinx/middlewares/active_record_translator.rb +14 -2
  23. data/lib/thinking_sphinx/railtie.rb +1 -1
  24. data/lib/thinking_sphinx/rake_interface.rb +71 -23
  25. data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +15 -7
  26. data/lib/thinking_sphinx/real_time/populator.rb +3 -3
  27. data/lib/thinking_sphinx/tasks.rb +7 -8
  28. data/lib/thinking_sphinx/wildcard.rb +1 -1
  29. data/spec/acceptance/association_scoping_spec.rb +5 -5
  30. data/spec/acceptance/attribute_access_spec.rb +4 -4
  31. data/spec/acceptance/attribute_updates_spec.rb +3 -3
  32. data/spec/acceptance/batch_searching_spec.rb +4 -4
  33. data/spec/acceptance/big_integers_spec.rb +6 -6
  34. data/spec/acceptance/connection_spec.rb +23 -0
  35. data/spec/acceptance/excerpts_spec.rb +8 -8
  36. data/spec/acceptance/facets_spec.rb +13 -13
  37. data/spec/acceptance/geosearching_spec.rb +8 -8
  38. data/spec/acceptance/grouping_by_attributes_spec.rb +10 -10
  39. data/spec/acceptance/index_options_spec.rb +16 -16
  40. data/spec/acceptance/indexing_spec.rb +3 -3
  41. data/spec/acceptance/paginating_search_results_spec.rb +3 -3
  42. data/spec/acceptance/real_time_updates_spec.rb +4 -4
  43. data/spec/acceptance/remove_deleted_records_spec.rb +12 -12
  44. data/spec/acceptance/search_counts_spec.rb +2 -2
  45. data/spec/acceptance/search_for_just_ids_spec.rb +2 -2
  46. data/spec/acceptance/searching_across_models_spec.rb +6 -6
  47. data/spec/acceptance/searching_across_schemas_spec.rb +10 -10
  48. data/spec/acceptance/searching_on_fields_spec.rb +9 -9
  49. data/spec/acceptance/searching_with_filters_spec.rb +16 -16
  50. data/spec/acceptance/searching_with_sti_spec.rb +9 -9
  51. data/spec/acceptance/searching_within_a_model_spec.rb +17 -17
  52. data/spec/acceptance/sorting_search_results_spec.rb +6 -6
  53. data/spec/acceptance/specifying_sql_spec.rb +62 -62
  54. data/spec/acceptance/sphinx_scopes_spec.rb +9 -9
  55. data/spec/acceptance/sql_deltas_spec.rb +7 -7
  56. data/spec/acceptance/support/database_cleaner.rb +1 -1
  57. data/spec/acceptance/support/sphinx_controller.rb +4 -1
  58. data/spec/acceptance/support/sphinx_helpers.rb +4 -0
  59. data/spec/acceptance/suspended_deltas_spec.rb +9 -9
  60. data/spec/internal/app/indices/article_index.rb +2 -2
  61. data/spec/internal/app/indices/book_index.rb +2 -1
  62. data/spec/internal/app/indices/product_index.rb +0 -2
  63. data/spec/internal/app/models/categorisation.rb +8 -1
  64. data/spec/spec_helper.rb +2 -0
  65. data/spec/support/json_column.rb +5 -1
  66. data/spec/support/multi_schema.rb +3 -1
  67. data/spec/support/sphinx_yaml_helpers.rb +1 -1
  68. data/spec/thinking_sphinx/active_record/association_spec.rb +1 -1
  69. data/spec/thinking_sphinx/active_record/attribute/type_spec.rb +41 -38
  70. data/spec/thinking_sphinx/active_record/base_spec.rb +29 -29
  71. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +10 -10
  72. data/spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb +48 -25
  73. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +8 -8
  74. data/spec/thinking_sphinx/active_record/column_spec.rb +13 -13
  75. data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +5 -5
  76. data/spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb +5 -5
  77. data/spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb +11 -11
  78. data/spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb +13 -13
  79. data/spec/thinking_sphinx/active_record/database_adapters_spec.rb +48 -48
  80. data/spec/thinking_sphinx/active_record/field_spec.rb +7 -7
  81. data/spec/thinking_sphinx/active_record/filter_reflection_spec.rb +32 -32
  82. data/spec/thinking_sphinx/active_record/index_spec.rb +35 -36
  83. data/spec/thinking_sphinx/active_record/interpreter_spec.rb +51 -51
  84. data/spec/thinking_sphinx/active_record/polymorpher_spec.rb +14 -14
  85. data/spec/thinking_sphinx/active_record/property_sql_presenter_spec.rb +67 -67
  86. data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +140 -140
  87. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +97 -95
  88. data/spec/thinking_sphinx/configuration_spec.rb +81 -81
  89. data/spec/thinking_sphinx/connection_spec.rb +13 -13
  90. data/spec/thinking_sphinx/deletion_spec.rb +11 -11
  91. data/spec/thinking_sphinx/deltas/default_delta_spec.rb +20 -20
  92. data/spec/thinking_sphinx/deltas_spec.rb +12 -12
  93. data/spec/thinking_sphinx/errors_spec.rb +30 -30
  94. data/spec/thinking_sphinx/excerpter_spec.rb +7 -7
  95. data/spec/thinking_sphinx/facet_search_spec.rb +16 -16
  96. data/spec/thinking_sphinx/index_set_spec.rb +7 -7
  97. data/spec/thinking_sphinx/index_spec.rb +24 -24
  98. data/spec/thinking_sphinx/masks/pagination_mask_spec.rb +20 -20
  99. data/spec/thinking_sphinx/masks/scopes_mask_spec.rb +18 -18
  100. data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +22 -22
  101. data/spec/thinking_sphinx/middlewares/geographer_spec.rb +9 -9
  102. data/spec/thinking_sphinx/middlewares/glazier_spec.rb +4 -4
  103. data/spec/thinking_sphinx/middlewares/inquirer_spec.rb +7 -7
  104. data/spec/thinking_sphinx/middlewares/sphinxql_spec.rb +53 -53
  105. data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +5 -5
  106. data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +15 -15
  107. data/spec/thinking_sphinx/panes/attributes_pane_spec.rb +1 -1
  108. data/spec/thinking_sphinx/panes/distance_pane_spec.rb +4 -4
  109. data/spec/thinking_sphinx/panes/excerpts_pane_spec.rb +5 -5
  110. data/spec/thinking_sphinx/panes/weight_pane_spec.rb +1 -1
  111. data/spec/thinking_sphinx/rake_interface_spec.rb +66 -53
  112. data/spec/thinking_sphinx/real_time/attribute_spec.rb +13 -13
  113. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +107 -23
  114. data/spec/thinking_sphinx/real_time/field_spec.rb +14 -14
  115. data/spec/thinking_sphinx/real_time/index_spec.rb +29 -30
  116. data/spec/thinking_sphinx/real_time/interpreter_spec.rb +30 -30
  117. data/spec/thinking_sphinx/scopes_spec.rb +5 -5
  118. data/spec/thinking_sphinx/search/glaze_spec.rb +15 -15
  119. data/spec/thinking_sphinx/search/query_spec.rb +10 -10
  120. data/spec/thinking_sphinx/search_spec.rb +28 -28
  121. data/spec/thinking_sphinx/wildcard_spec.rb +16 -11
  122. data/spec/thinking_sphinx_spec.rb +6 -6
  123. data/thinking-sphinx.gemspec +4 -4
  124. metadata +12 -9
@@ -37,7 +37,7 @@ describe ThinkingSphinx::FacetSearch do
37
37
 
38
38
  describe '#[]' do
39
39
  it "populates facet results" do
40
- facet_search[:price_bracket].should == {3 => 5}
40
+ expect(facet_search[:price_bracket]).to eq({3 => 5})
41
41
  end
42
42
  end
43
43
 
@@ -45,17 +45,17 @@ describe ThinkingSphinx::FacetSearch do
45
45
  it "queries on each facet with a grouped search in a batch" do
46
46
  facet_search.populate
47
47
 
48
- batch.searches.detect { |search|
48
+ expect(batch.searches.detect { |search|
49
49
  search.options[:group_by] == 'price_bracket'
50
- }.should_not be_nil
50
+ }).not_to be_nil
51
51
  end
52
52
 
53
53
  it "limits query for a facet to just indices that have that facet" do
54
54
  facet_search.populate
55
55
 
56
- batch.searches.detect { |search|
56
+ expect(batch.searches.detect { |search|
57
57
  search.options[:indices] == ['foo_core']
58
- }.should_not be_nil
58
+ }).not_to be_nil
59
59
  end
60
60
 
61
61
  it "limits facets to the specified set" do
@@ -63,25 +63,25 @@ describe ThinkingSphinx::FacetSearch do
63
63
 
64
64
  facet_search.populate
65
65
 
66
- batch.searches.collect { |search|
66
+ expect(batch.searches.collect { |search|
67
67
  search.options[:group_by]
68
- }.should == ['category_id']
68
+ }).to eq(['category_id'])
69
69
  end
70
70
 
71
71
  it "aliases the class facet from sphinx_internal_class" do
72
- property_a.stub :name => 'sphinx_internal_class'
72
+ allow(property_a).to receive_messages :name => 'sphinx_internal_class'
73
73
 
74
74
  facet_search.populate
75
75
 
76
- facet_search[:class].should == {'Foo' => 5}
76
+ expect(facet_search[:class]).to eq({'Foo' => 5})
77
77
  end
78
78
 
79
79
  it "uses the @groupby value for MVAs" do
80
- property_a.stub :name => 'tag_ids', :multi? => true
80
+ allow(property_a).to receive_messages :name => 'tag_ids', :multi? => true
81
81
 
82
82
  facet_search.populate
83
83
 
84
- facet_search[:tag_ids].should == {2 => 5}
84
+ expect(facet_search[:tag_ids]).to eq({2 => 5})
85
85
  end
86
86
 
87
87
  [:max_matches, :limit].each do |setting|
@@ -89,7 +89,7 @@ describe ThinkingSphinx::FacetSearch do
89
89
  facet_search.populate
90
90
 
91
91
  batch.searches.each { |search|
92
- search.options[setting].should == 1000
92
+ expect(search.options[setting]).to eq(1000)
93
93
  }
94
94
  end
95
95
 
@@ -99,7 +99,7 @@ describe ThinkingSphinx::FacetSearch do
99
99
  facet_search.populate
100
100
 
101
101
  batch.searches.each { |search|
102
- search.options[setting].should == 1234
102
+ expect(search.options[setting]).to eq(1234)
103
103
  }
104
104
  end
105
105
  end
@@ -111,7 +111,7 @@ describe ThinkingSphinx::FacetSearch do
111
111
  facet_search.populate
112
112
 
113
113
  batch.searches.each { |search|
114
- search.options[setting].should == 42
114
+ expect(search.options[setting]).to eq(42)
115
115
  }
116
116
  end
117
117
 
@@ -122,8 +122,8 @@ describe ThinkingSphinx::FacetSearch do
122
122
  facet_search.populate
123
123
 
124
124
  batch.searches.each do |search|
125
- search.options[setting].should == 10
126
- search.options[:max_matches].should == 500
125
+ expect(search.options[setting]).to eq(10)
126
+ expect(search.options[:max_matches]).to eq(500)
127
127
  end
128
128
  end
129
129
  end
@@ -17,13 +17,13 @@ describe ThinkingSphinx::IndexSet do
17
17
 
18
18
  def class_double(name, *superclasses)
19
19
  klass = double 'class', :name => name, :class => Class
20
- klass.stub :ancestors => ([klass] + superclasses + [ar_base])
20
+ allow(klass).to receive_messages :ancestors => ([klass] + superclasses + [ar_base])
21
21
  klass
22
22
  end
23
23
 
24
24
  describe '#to_a' do
25
25
  it "ensures the indices are loaded" do
26
- configuration.should_receive(:preload_indices)
26
+ expect(configuration).to receive(:preload_indices)
27
27
 
28
28
  set.to_a
29
29
  end
@@ -37,7 +37,7 @@ describe ThinkingSphinx::IndexSet do
37
37
 
38
38
  configuration.indices.replace [article_core, user_core, distributed]
39
39
 
40
- set.to_a.should == [article_core, user_core]
40
+ expect(set.to_a).to eq([article_core, user_core])
41
41
  end
42
42
 
43
43
  it "uses indices for the given classes" do
@@ -49,7 +49,7 @@ describe ThinkingSphinx::IndexSet do
49
49
 
50
50
  options[:classes] = [class_double('Article')]
51
51
 
52
- set.to_a.length.should == 1
52
+ expect(set.to_a.length).to eq(1)
53
53
  end
54
54
 
55
55
  it "requests indices for any superclasses" do
@@ -63,7 +63,7 @@ describe ThinkingSphinx::IndexSet do
63
63
  class_double('OpinionArticle', class_double('Article'))
64
64
  ]
65
65
 
66
- set.to_a.length.should == 2
66
+ expect(set.to_a.length).to eq(2)
67
67
  end
68
68
 
69
69
  it "uses named indices if names are provided" do
@@ -73,7 +73,7 @@ describe ThinkingSphinx::IndexSet do
73
73
 
74
74
  options[:indices] = ['article_core']
75
75
 
76
- set.to_a.should == [article_core]
76
+ expect(set.to_a).to eq([article_core])
77
77
  end
78
78
 
79
79
  it "selects from the full index set those with matching references" do
@@ -85,7 +85,7 @@ describe ThinkingSphinx::IndexSet do
85
85
 
86
86
  options[:references] = [:book, :article]
87
87
 
88
- set.to_a.length.should == 2
88
+ expect(set.to_a.length).to eq(2)
89
89
  end
90
90
  end
91
91
  end
@@ -4,7 +4,7 @@ describe ThinkingSphinx::Index do
4
4
  let(:configuration) { Struct.new(:indices, :settings).new([], {}) }
5
5
 
6
6
  before :each do
7
- ThinkingSphinx::Configuration.stub :instance => configuration
7
+ allow(ThinkingSphinx::Configuration).to receive_messages :instance => configuration
8
8
  end
9
9
 
10
10
  describe '.define' do
@@ -12,29 +12,29 @@ describe ThinkingSphinx::Index do
12
12
 
13
13
  context 'with ActiveRecord' do
14
14
  before :each do
15
- ThinkingSphinx::ActiveRecord::Index.stub :new => index
15
+ allow(ThinkingSphinx::ActiveRecord::Index).to receive_messages :new => index
16
16
  end
17
17
 
18
18
  it "creates an ActiveRecord index" do
19
- ThinkingSphinx::ActiveRecord::Index.should_receive(:new).
19
+ expect(ThinkingSphinx::ActiveRecord::Index).to receive(:new).
20
20
  with(:user, :with => :active_record).and_return index
21
21
 
22
22
  ThinkingSphinx::Index.define(:user, :with => :active_record)
23
23
  end
24
24
 
25
25
  it "returns the ActiveRecord index" do
26
- ThinkingSphinx::Index.define(:user, :with => :active_record).
27
- should == [index]
26
+ expect(ThinkingSphinx::Index.define(:user, :with => :active_record)).
27
+ to eq([index])
28
28
  end
29
29
 
30
30
  it "adds the index to the collection of indices" do
31
31
  ThinkingSphinx::Index.define(:user, :with => :active_record)
32
32
 
33
- configuration.indices.should include(index)
33
+ expect(configuration.indices).to include(index)
34
34
  end
35
35
 
36
36
  it "sets the block in the index" do
37
- index.should_receive(:definition_block=).with instance_of(Proc)
37
+ expect(index).to receive(:definition_block=).with instance_of(Proc)
38
38
 
39
39
  ThinkingSphinx::Index.define(:user, :with => :active_record) do
40
40
  indexes name
@@ -46,19 +46,19 @@ describe ThinkingSphinx::Index do
46
46
  let(:processor) { double('delta processor') }
47
47
 
48
48
  before :each do
49
- ThinkingSphinx::Deltas.stub :processor_for => processor
50
- ThinkingSphinx::ActiveRecord::Index.stub(:new).
49
+ allow(ThinkingSphinx::Deltas).to receive_messages :processor_for => processor
50
+ allow(ThinkingSphinx::ActiveRecord::Index).to receive(:new).
51
51
  and_return(index, delta_index)
52
52
  end
53
53
 
54
54
  it "creates two indices with delta settings" do
55
- ThinkingSphinx::ActiveRecord::Index.unstub :new
56
- ThinkingSphinx::ActiveRecord::Index.should_receive(:new).
55
+ allow(ThinkingSphinx::ActiveRecord::Index).to receive(:new).and_call_original
56
+ expect(ThinkingSphinx::ActiveRecord::Index).to receive(:new).
57
57
  with(:user,
58
58
  hash_including(:delta? => false, :delta_processor => processor)
59
59
  ).once.
60
60
  and_return index
61
- ThinkingSphinx::ActiveRecord::Index.should_receive(:new).
61
+ expect(ThinkingSphinx::ActiveRecord::Index).to receive(:new).
62
62
  with(:user,
63
63
  hash_including(:delta? => true, :delta_processor => processor)
64
64
  ).once.
@@ -74,13 +74,13 @@ describe ThinkingSphinx::Index do
74
74
  :with => :active_record,
75
75
  :delta => true
76
76
 
77
- configuration.indices.should include(index)
78
- configuration.indices.should include(delta_index)
77
+ expect(configuration.indices).to include(index)
78
+ expect(configuration.indices).to include(delta_index)
79
79
  end
80
80
 
81
81
  it "sets the block in the index" do
82
- index.should_receive(:definition_block=).with instance_of(Proc)
83
- delta_index.should_receive(:definition_block=).with instance_of(Proc)
82
+ expect(index).to receive(:definition_block=).with instance_of(Proc)
83
+ expect(delta_index).to receive(:definition_block=).with instance_of(Proc)
84
84
 
85
85
  ThinkingSphinx::Index.define(:user,
86
86
  :with => :active_record,
@@ -93,29 +93,29 @@ describe ThinkingSphinx::Index do
93
93
 
94
94
  context 'with Real-Time' do
95
95
  before :each do
96
- ThinkingSphinx::RealTime::Index.stub :new => index
96
+ allow(ThinkingSphinx::RealTime::Index).to receive_messages :new => index
97
97
  end
98
98
 
99
99
  it "creates a real-time index" do
100
- ThinkingSphinx::RealTime::Index.should_receive(:new).
100
+ expect(ThinkingSphinx::RealTime::Index).to receive(:new).
101
101
  with(:user, :with => :real_time).and_return index
102
102
 
103
103
  ThinkingSphinx::Index.define(:user, :with => :real_time)
104
104
  end
105
105
 
106
106
  it "returns the ActiveRecord index" do
107
- ThinkingSphinx::Index.define(:user, :with => :real_time).
108
- should == [index]
107
+ expect(ThinkingSphinx::Index.define(:user, :with => :real_time)).
108
+ to eq([index])
109
109
  end
110
110
 
111
111
  it "adds the index to the collection of indices" do
112
112
  ThinkingSphinx::Index.define(:user, :with => :real_time)
113
113
 
114
- configuration.indices.should include(index)
114
+ expect(configuration.indices).to include(index)
115
115
  end
116
116
 
117
117
  it "sets the block in the index" do
118
- index.should_receive(:definition_block=).with instance_of(Proc)
118
+ expect(index).to receive(:definition_block=).with instance_of(Proc)
119
119
 
120
120
  ThinkingSphinx::Index.define(:user, :with => :real_time) do
121
121
  indexes name
@@ -126,13 +126,13 @@ describe ThinkingSphinx::Index do
126
126
 
127
127
  describe '#initialize' do
128
128
  it "is fine with no defaults from settings" do
129
- ThinkingSphinx::Index.new(:user, {}).options.should == {}
129
+ expect(ThinkingSphinx::Index.new(:user, {}).options).to eq({})
130
130
  end
131
131
 
132
132
  it "respects defaults from settings" do
133
133
  configuration.settings['index_options'] = {'delta' => true}
134
134
 
135
- ThinkingSphinx::Index.new(:user, {}).options.should == {:delta => true}
135
+ expect(ThinkingSphinx::Index.new(:user, {}).options).to eq({:delta => true})
136
136
  end
137
137
  end
138
138
  end
@@ -12,13 +12,13 @@ describe ThinkingSphinx::Masks::PaginationMask do
12
12
 
13
13
  describe '#first_page?' do
14
14
  it "returns true when on the first page" do
15
- mask.should be_first_page
15
+ expect(mask).to be_first_page
16
16
  end
17
17
 
18
18
  it "returns false on other pages" do
19
- search.stub :current_page => 2
19
+ allow(search).to receive_messages :current_page => 2
20
20
 
21
- mask.should_not be_first_page
21
+ expect(mask).not_to be_first_page
22
22
  end
23
23
  end
24
24
 
@@ -28,13 +28,13 @@ describe ThinkingSphinx::Masks::PaginationMask do
28
28
  end
29
29
 
30
30
  it "is true when there's no more pages" do
31
- search.stub :current_page => 3
31
+ allow(search).to receive_messages :current_page => 3
32
32
 
33
- mask.should be_last_page
33
+ expect(mask).to be_last_page
34
34
  end
35
35
 
36
36
  it "is false when there's still more pages" do
37
- mask.should_not be_last_page
37
+ expect(mask).not_to be_last_page
38
38
  end
39
39
  end
40
40
 
@@ -44,13 +44,13 @@ describe ThinkingSphinx::Masks::PaginationMask do
44
44
  end
45
45
 
46
46
  it "should return one more than the current page" do
47
- mask.next_page.should == 2
47
+ expect(mask.next_page).to eq(2)
48
48
  end
49
49
 
50
50
  it "should return nil if on the last page" do
51
- search.stub :current_page => 3
51
+ allow(search).to receive_messages :current_page => 3
52
52
 
53
- mask.next_page.should be_nil
53
+ expect(mask.next_page).to be_nil
54
54
  end
55
55
  end
56
56
 
@@ -60,13 +60,13 @@ describe ThinkingSphinx::Masks::PaginationMask do
60
60
  end
61
61
 
62
62
  it "is true when there is a second page" do
63
- mask.next_page?.should be_true
63
+ expect(mask.next_page?).to be_truthy
64
64
  end
65
65
 
66
66
  it "is false when there's no more pages" do
67
- search.stub :current_page => 3
67
+ allow(search).to receive_messages :current_page => 3
68
68
 
69
- mask.next_page?.should be_false
69
+ expect(mask.next_page?).to be_falsey
70
70
  end
71
71
  end
72
72
 
@@ -76,13 +76,13 @@ describe ThinkingSphinx::Masks::PaginationMask do
76
76
  end
77
77
 
78
78
  it "should return one less than the current page" do
79
- search.stub :current_page => 2
79
+ allow(search).to receive_messages :current_page => 2
80
80
 
81
- mask.previous_page.should == 1
81
+ expect(mask.previous_page).to eq(1)
82
82
  end
83
83
 
84
84
  it "should return nil if on the first page" do
85
- mask.previous_page.should be_nil
85
+ expect(mask.previous_page).to be_nil
86
86
  end
87
87
  end
88
88
 
@@ -92,7 +92,7 @@ describe ThinkingSphinx::Masks::PaginationMask do
92
92
  end
93
93
 
94
94
  it "returns the total found from the search request metadata" do
95
- mask.total_entries.should == 12
95
+ expect(mask.total_entries).to eq(12)
96
96
  end
97
97
  end
98
98
 
@@ -103,19 +103,19 @@ describe ThinkingSphinx::Masks::PaginationMask do
103
103
  end
104
104
 
105
105
  it "uses the total available from the search request metadata" do
106
- mask.total_pages.should == 2
106
+ expect(mask.total_pages).to eq(2)
107
107
  end
108
108
 
109
109
  it "should allow for custom per_page values" do
110
- search.stub :per_page => 40
110
+ allow(search).to receive_messages :per_page => 40
111
111
 
112
- mask.total_pages.should == 1
112
+ expect(mask.total_pages).to eq(1)
113
113
  end
114
114
 
115
115
  it "should return 0 if there is no index and therefore no results" do
116
116
  search.meta.clear
117
117
 
118
- mask.total_pages.should == 0
118
+ expect(mask.total_pages).to eq(0)
119
119
  end
120
120
  end
121
121
  end
@@ -10,18 +10,18 @@ describe ThinkingSphinx::Masks::ScopesMask do
10
10
  let(:mask) { ThinkingSphinx::Masks::ScopesMask.new search }
11
11
 
12
12
  before :each do
13
- FileUtils.stub :mkdir_p => true
13
+ allow(FileUtils).to receive_messages :mkdir_p => true
14
14
  end
15
15
 
16
16
  describe '#search' do
17
17
  it "replaces the query if one is supplied" do
18
- search.should_receive(:query=).with('bar')
18
+ expect(search).to receive(:query=).with('bar')
19
19
 
20
20
  mask.search('bar')
21
21
  end
22
22
 
23
23
  it "keeps the existing query when only options are offered" do
24
- search.should_not_receive(:query=)
24
+ expect(search).not_to receive(:query=)
25
25
 
26
26
  mask.search :with => {:foo => :bar}
27
27
  end
@@ -31,7 +31,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
31
31
 
32
32
  mask.search :conditions => {:baz => 'qux'}
33
33
 
34
- search.options[:conditions].should == {:foo => 'bar', :baz => 'qux'}
34
+ expect(search.options[:conditions]).to eq({:foo => 'bar', :baz => 'qux'})
35
35
  end
36
36
 
37
37
  it "merges filters" do
@@ -39,7 +39,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
39
39
 
40
40
  mask.search :with => {:baz => :qux}
41
41
 
42
- search.options[:with].should == {:foo => :bar, :baz => :qux}
42
+ expect(search.options[:with]).to eq({:foo => :bar, :baz => :qux})
43
43
  end
44
44
 
45
45
  it "merges exclusive filters" do
@@ -47,7 +47,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
47
47
 
48
48
  mask.search :without => {:baz => :qux}
49
49
 
50
- search.options[:without].should == {:foo => :bar, :baz => :qux}
50
+ expect(search.options[:without]).to eq({:foo => :bar, :baz => :qux})
51
51
  end
52
52
 
53
53
  it "appends excluded ids" do
@@ -55,7 +55,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
55
55
 
56
56
  mask.search :without_ids => [5, 7]
57
57
 
58
- search.options[:without_ids].should == [1, 3, 5, 7]
58
+ expect(search.options[:without_ids]).to eq([1, 3, 5, 7])
59
59
  end
60
60
 
61
61
  it "replaces the retry_stale option" do
@@ -63,23 +63,23 @@ describe ThinkingSphinx::Masks::ScopesMask do
63
63
 
64
64
  mask.search :retry_stale => 6
65
65
 
66
- search.options[:retry_stale].should == 6
66
+ expect(search.options[:retry_stale]).to eq(6)
67
67
  end
68
68
 
69
69
  it "returns the original search object" do
70
- mask.search.object_id.should == search.object_id
70
+ expect(mask.search.object_id).to eq(search.object_id)
71
71
  end
72
72
  end
73
73
 
74
74
  describe '#search_for_ids' do
75
75
  it "replaces the query if one is supplied" do
76
- search.should_receive(:query=).with('bar')
76
+ expect(search).to receive(:query=).with('bar')
77
77
 
78
78
  mask.search_for_ids('bar')
79
79
  end
80
80
 
81
81
  it "keeps the existing query when only options are offered" do
82
- search.should_not_receive(:query=)
82
+ expect(search).not_to receive(:query=)
83
83
 
84
84
  mask.search_for_ids :with => {:foo => :bar}
85
85
  end
@@ -89,7 +89,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
89
89
 
90
90
  mask.search_for_ids :conditions => {:baz => 'qux'}
91
91
 
92
- search.options[:conditions].should == {:foo => 'bar', :baz => 'qux'}
92
+ expect(search.options[:conditions]).to eq({:foo => 'bar', :baz => 'qux'})
93
93
  end
94
94
 
95
95
  it "merges filters" do
@@ -97,7 +97,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
97
97
 
98
98
  mask.search_for_ids :with => {:baz => :qux}
99
99
 
100
- search.options[:with].should == {:foo => :bar, :baz => :qux}
100
+ expect(search.options[:with]).to eq({:foo => :bar, :baz => :qux})
101
101
  end
102
102
 
103
103
  it "merges exclusive filters" do
@@ -105,7 +105,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
105
105
 
106
106
  mask.search_for_ids :without => {:baz => :qux}
107
107
 
108
- search.options[:without].should == {:foo => :bar, :baz => :qux}
108
+ expect(search.options[:without]).to eq({:foo => :bar, :baz => :qux})
109
109
  end
110
110
 
111
111
  it "appends excluded ids" do
@@ -113,7 +113,7 @@ describe ThinkingSphinx::Masks::ScopesMask do
113
113
 
114
114
  mask.search_for_ids :without_ids => [5, 7]
115
115
 
116
- search.options[:without_ids].should == [1, 3, 5, 7]
116
+ expect(search.options[:without_ids]).to eq([1, 3, 5, 7])
117
117
  end
118
118
 
119
119
  it "replaces the retry_stale option" do
@@ -121,17 +121,17 @@ describe ThinkingSphinx::Masks::ScopesMask do
121
121
 
122
122
  mask.search_for_ids :retry_stale => 6
123
123
 
124
- search.options[:retry_stale].should == 6
124
+ expect(search.options[:retry_stale]).to eq(6)
125
125
  end
126
126
 
127
127
  it "adds the ids_only option" do
128
128
  mask.search_for_ids
129
129
 
130
- search.options[:ids_only].should be_true
130
+ expect(search.options[:ids_only]).to be_truthy
131
131
  end
132
132
 
133
133
  it "returns the original search object" do
134
- mask.search_for_ids.object_id.should == search.object_id
134
+ expect(mask.search_for_ids.object_id).to eq(search.object_id)
135
135
  end
136
136
  end
137
137
  end