thinking-sphinx 3.4.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +20 -18
- data/Appraisals +28 -16
- data/CHANGELOG.markdown +538 -0
- data/Gemfile +9 -11
- data/README.textile +23 -31
- data/Rakefile +2 -0
- data/bin/console +2 -1
- data/bin/loadsphinx +29 -2
- data/lib/thinking-sphinx.rb +2 -0
- data/lib/thinking/sphinx.rb +2 -0
- data/lib/thinking_sphinx.rb +24 -13
- data/lib/thinking_sphinx/active_record.rb +10 -1
- data/lib/thinking_sphinx/active_record/association.rb +2 -0
- data/lib/thinking_sphinx/active_record/association_proxy.rb +2 -0
- data/lib/thinking_sphinx/active_record/association_proxy/attribute_finder.rb +2 -0
- data/lib/thinking_sphinx/active_record/association_proxy/attribute_matcher.rb +2 -0
- data/lib/thinking_sphinx/active_record/attribute.rb +2 -0
- data/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb +2 -0
- data/lib/thinking_sphinx/active_record/attribute/type.rb +2 -0
- data/lib/thinking_sphinx/active_record/attribute/values.rb +2 -0
- data/lib/thinking_sphinx/active_record/base.rb +2 -0
- data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +2 -0
- data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +2 -0
- data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +2 -0
- data/lib/thinking_sphinx/active_record/column.rb +2 -0
- data/lib/thinking_sphinx/active_record/column_sql_presenter.rb +2 -0
- data/lib/thinking_sphinx/active_record/database_adapters.rb +2 -0
- data/lib/thinking_sphinx/active_record/database_adapters/abstract_adapter.rb +2 -0
- data/lib/thinking_sphinx/active_record/database_adapters/mysql_adapter.rb +2 -0
- data/lib/thinking_sphinx/active_record/database_adapters/postgresql_adapter.rb +2 -0
- data/lib/thinking_sphinx/active_record/depolymorph/association_reflection.rb +32 -0
- data/lib/thinking_sphinx/active_record/depolymorph/base_reflection.rb +32 -0
- data/lib/thinking_sphinx/active_record/depolymorph/conditions_reflection.rb +40 -0
- data/lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb +35 -0
- data/lib/thinking_sphinx/active_record/depolymorph/scoped_reflection.rb +26 -0
- data/lib/thinking_sphinx/active_record/field.rb +2 -0
- data/lib/thinking_sphinx/active_record/filter_reflection.rb +13 -71
- data/lib/thinking_sphinx/active_record/index.rb +2 -0
- data/lib/thinking_sphinx/active_record/interpreter.rb +2 -0
- data/lib/thinking_sphinx/active_record/join_association.rb +2 -0
- data/lib/thinking_sphinx/active_record/log_subscriber.rb +2 -0
- data/lib/thinking_sphinx/active_record/polymorpher.rb +2 -0
- data/lib/thinking_sphinx/active_record/property.rb +2 -0
- data/lib/thinking_sphinx/active_record/property_query.rb +2 -0
- data/lib/thinking_sphinx/active_record/property_sql_presenter.rb +2 -0
- data/lib/thinking_sphinx/active_record/simple_many_query.rb +2 -0
- data/lib/thinking_sphinx/active_record/source_joins.rb +2 -0
- data/lib/thinking_sphinx/active_record/sql_builder.rb +2 -0
- data/lib/thinking_sphinx/active_record/sql_builder/clause_builder.rb +2 -0
- data/lib/thinking_sphinx/active_record/sql_builder/query.rb +2 -0
- data/lib/thinking_sphinx/active_record/sql_builder/statement.rb +2 -0
- data/lib/thinking_sphinx/active_record/sql_source.rb +15 -3
- data/lib/thinking_sphinx/active_record/sql_source/template.rb +2 -0
- data/lib/thinking_sphinx/attribute_types.rb +2 -0
- data/lib/thinking_sphinx/batched_search.rb +2 -0
- data/lib/thinking_sphinx/callbacks.rb +2 -0
- data/lib/thinking_sphinx/capistrano.rb +2 -0
- data/lib/thinking_sphinx/capistrano/v2.rb +2 -0
- data/lib/thinking_sphinx/capistrano/v3.rb +2 -0
- data/lib/thinking_sphinx/commander.rb +27 -0
- data/lib/thinking_sphinx/commands.rb +20 -0
- data/lib/thinking_sphinx/commands/base.rb +9 -1
- data/lib/thinking_sphinx/commands/clear_real_time.rb +22 -0
- data/lib/thinking_sphinx/commands/clear_sql.rb +18 -0
- data/lib/thinking_sphinx/commands/configure.rb +2 -0
- data/lib/thinking_sphinx/commands/index_real_time.rb +17 -0
- data/lib/thinking_sphinx/commands/index_sql.rb +25 -0
- data/lib/thinking_sphinx/commands/merge.rb +27 -0
- data/lib/thinking_sphinx/commands/merge_and_update.rb +57 -0
- data/lib/thinking_sphinx/commands/prepare.rb +13 -0
- data/lib/thinking_sphinx/commands/rotate.rb +13 -0
- data/lib/thinking_sphinx/commands/running.rb +13 -0
- data/lib/thinking_sphinx/commands/start_attached.rb +2 -0
- data/lib/thinking_sphinx/commands/start_detached.rb +3 -1
- data/lib/thinking_sphinx/commands/stop.rb +4 -2
- data/lib/thinking_sphinx/configuration.rb +28 -47
- data/lib/thinking_sphinx/configuration/consistent_ids.rb +2 -0
- data/lib/thinking_sphinx/configuration/defaults.rb +2 -0
- data/lib/thinking_sphinx/configuration/distributed_indices.rb +2 -0
- data/lib/thinking_sphinx/configuration/duplicate_names.rb +2 -0
- data/lib/thinking_sphinx/configuration/minimum_fields.rb +2 -0
- data/lib/thinking_sphinx/connection.rb +4 -5
- data/lib/thinking_sphinx/connection/client.rb +21 -0
- data/lib/thinking_sphinx/connection/jruby.rb +7 -2
- data/lib/thinking_sphinx/connection/mri.rb +2 -4
- data/lib/thinking_sphinx/core.rb +2 -0
- data/lib/thinking_sphinx/core/field.rb +2 -0
- data/lib/thinking_sphinx/core/index.rb +4 -1
- data/lib/thinking_sphinx/core/interpreter.rb +2 -0
- data/lib/thinking_sphinx/core/property.rb +2 -0
- data/lib/thinking_sphinx/core/settings.rb +2 -0
- data/lib/thinking_sphinx/deletion.rb +2 -0
- data/lib/thinking_sphinx/deltas.rb +2 -0
- data/lib/thinking_sphinx/deltas/default_delta.rb +2 -0
- data/lib/thinking_sphinx/deltas/delete_job.rb +2 -0
- data/lib/thinking_sphinx/deltas/index_job.rb +9 -1
- data/lib/thinking_sphinx/distributed.rb +2 -0
- data/lib/thinking_sphinx/distributed/index.rb +2 -0
- data/lib/thinking_sphinx/errors.rb +9 -0
- data/lib/thinking_sphinx/excerpter.rb +2 -0
- data/lib/thinking_sphinx/facet.rb +4 -3
- data/lib/thinking_sphinx/facet_search.rb +4 -2
- data/lib/thinking_sphinx/float_formatter.rb +2 -0
- data/lib/thinking_sphinx/frameworks.rb +2 -0
- data/lib/thinking_sphinx/frameworks/plain.rb +2 -0
- data/lib/thinking_sphinx/frameworks/rails.rb +2 -0
- data/lib/thinking_sphinx/guard.rb +3 -0
- data/lib/thinking_sphinx/guard/file.rb +2 -0
- data/lib/thinking_sphinx/guard/files.rb +2 -0
- data/lib/thinking_sphinx/guard/none.rb +7 -0
- data/lib/thinking_sphinx/hooks/guard_presence.rb +34 -0
- data/lib/thinking_sphinx/index.rb +2 -0
- data/lib/thinking_sphinx/index_set.rb +2 -0
- data/lib/thinking_sphinx/indexing_strategies/all_at_once.rb +2 -0
- data/lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb +2 -0
- data/lib/thinking_sphinx/interfaces.rb +10 -0
- data/lib/thinking_sphinx/interfaces/base.rb +13 -0
- data/lib/thinking_sphinx/interfaces/daemon.rb +6 -11
- data/lib/thinking_sphinx/interfaces/real_time.rb +19 -14
- data/lib/thinking_sphinx/interfaces/sql.rb +22 -10
- data/lib/thinking_sphinx/logger.rb +2 -0
- data/lib/thinking_sphinx/masks.rb +2 -0
- data/lib/thinking_sphinx/masks/group_enumerators_mask.rb +6 -4
- data/lib/thinking_sphinx/masks/pagination_mask.rb +2 -0
- data/lib/thinking_sphinx/masks/scopes_mask.rb +2 -0
- data/lib/thinking_sphinx/masks/weight_enumerator_mask.rb +3 -1
- data/lib/thinking_sphinx/middlewares.rb +5 -3
- data/lib/thinking_sphinx/middlewares/active_record_translator.rb +2 -0
- data/lib/thinking_sphinx/middlewares/geographer.rb +2 -0
- data/lib/thinking_sphinx/middlewares/glazier.rb +2 -0
- data/lib/thinking_sphinx/middlewares/ids_only.rb +2 -0
- data/lib/thinking_sphinx/middlewares/inquirer.rb +2 -0
- data/lib/thinking_sphinx/middlewares/middleware.rb +2 -0
- data/lib/thinking_sphinx/middlewares/sphinxql.rb +4 -2
- data/lib/thinking_sphinx/middlewares/stale_id_checker.rb +2 -0
- data/lib/thinking_sphinx/middlewares/stale_id_filter.rb +2 -0
- data/lib/thinking_sphinx/middlewares/valid_options.rb +2 -0
- data/lib/thinking_sphinx/panes.rb +2 -0
- data/lib/thinking_sphinx/panes/attributes_pane.rb +2 -0
- data/lib/thinking_sphinx/panes/distance_pane.rb +2 -0
- data/lib/thinking_sphinx/panes/excerpts_pane.rb +2 -0
- data/lib/thinking_sphinx/panes/weight_pane.rb +3 -1
- data/lib/thinking_sphinx/query.rb +2 -0
- data/lib/thinking_sphinx/railtie.rb +2 -0
- data/lib/thinking_sphinx/rake_interface.rb +3 -1
- data/lib/thinking_sphinx/real_time.rb +3 -0
- data/lib/thinking_sphinx/real_time/attribute.rb +2 -0
- data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +2 -0
- data/lib/thinking_sphinx/real_time/field.rb +2 -0
- data/lib/thinking_sphinx/real_time/index.rb +2 -0
- data/lib/thinking_sphinx/real_time/index/template.rb +2 -0
- data/lib/thinking_sphinx/real_time/interpreter.rb +2 -0
- data/lib/thinking_sphinx/real_time/populator.rb +2 -1
- data/lib/thinking_sphinx/real_time/property.rb +2 -0
- data/lib/thinking_sphinx/real_time/transcribe_instance.rb +38 -0
- data/lib/thinking_sphinx/real_time/transcriber.rb +18 -27
- data/lib/thinking_sphinx/real_time/translator.rb +3 -1
- data/lib/thinking_sphinx/scopes.rb +2 -0
- data/lib/thinking_sphinx/search.rb +2 -0
- data/lib/thinking_sphinx/search/batch_inquirer.rb +2 -0
- data/lib/thinking_sphinx/search/context.rb +2 -0
- data/lib/thinking_sphinx/search/glaze.rb +2 -0
- data/lib/thinking_sphinx/search/merger.rb +2 -0
- data/lib/thinking_sphinx/search/query.rb +2 -0
- data/lib/thinking_sphinx/search/stale_ids_exception.rb +2 -0
- data/lib/thinking_sphinx/settings.rb +110 -0
- data/lib/thinking_sphinx/sinatra.rb +2 -0
- data/lib/thinking_sphinx/subscribers/populator_subscriber.rb +18 -0
- data/lib/thinking_sphinx/tasks.rb +13 -46
- data/lib/thinking_sphinx/test.rb +2 -0
- data/lib/thinking_sphinx/utf8.rb +2 -0
- data/lib/thinking_sphinx/wildcard.rb +2 -0
- data/lib/thinking_sphinx/with_output.rb +2 -0
- data/spec/acceptance/association_scoping_spec.rb +2 -0
- data/spec/acceptance/attribute_access_spec.rb +4 -4
- data/spec/acceptance/attribute_updates_spec.rb +2 -0
- data/spec/acceptance/batch_searching_spec.rb +2 -0
- data/spec/acceptance/big_integers_spec.rb +2 -0
- data/spec/acceptance/connection_spec.rb +2 -0
- data/spec/acceptance/excerpts_spec.rb +1 -0
- data/spec/acceptance/facets_spec.rb +2 -3
- data/spec/acceptance/geosearching_spec.rb +3 -1
- data/spec/acceptance/grouping_by_attributes_spec.rb +2 -0
- data/spec/acceptance/index_options_spec.rb +2 -0
- data/spec/acceptance/indexing_spec.rb +2 -0
- data/spec/acceptance/merging_spec.rb +90 -0
- data/spec/acceptance/paginating_search_results_spec.rb +2 -0
- data/spec/acceptance/real_time_updates_spec.rb +2 -0
- data/spec/acceptance/remove_deleted_records_spec.rb +2 -0
- data/spec/acceptance/search_counts_spec.rb +2 -0
- data/spec/acceptance/search_for_just_ids_spec.rb +2 -0
- data/spec/acceptance/searching_across_models_spec.rb +2 -0
- data/spec/acceptance/searching_across_schemas_spec.rb +2 -0
- data/spec/acceptance/searching_on_fields_spec.rb +2 -0
- data/spec/acceptance/searching_with_filters_spec.rb +2 -0
- data/spec/acceptance/searching_with_sti_spec.rb +2 -0
- data/spec/acceptance/searching_within_a_model_spec.rb +2 -0
- data/spec/acceptance/sorting_search_results_spec.rb +2 -0
- data/spec/acceptance/spec_helper.rb +2 -13
- data/spec/acceptance/specifying_sql_spec.rb +2 -0
- data/spec/acceptance/sphinx_scopes_spec.rb +2 -0
- data/spec/acceptance/sql_deltas_spec.rb +2 -0
- data/spec/acceptance/support/database_cleaner.rb +2 -0
- data/spec/acceptance/support/sphinx_controller.rb +16 -5
- data/spec/acceptance/support/sphinx_helpers.rb +11 -0
- data/spec/acceptance/suspended_deltas_spec.rb +2 -0
- data/spec/internal/app/indices/admin_person_index.rb +2 -0
- data/spec/internal/app/indices/album_index.rb +2 -0
- data/spec/internal/app/indices/animal_index.rb +2 -0
- data/spec/internal/app/indices/article_index.rb +2 -0
- data/spec/internal/app/indices/bird_index.rb +2 -0
- data/spec/internal/app/indices/book_index.rb +2 -0
- data/spec/internal/app/indices/car_index.rb +2 -0
- data/spec/internal/app/indices/city_index.rb +2 -0
- data/spec/internal/app/indices/product_index.rb +2 -0
- data/spec/internal/app/indices/tee_index.rb +2 -0
- data/spec/internal/app/indices/user_index.rb +2 -0
- data/spec/internal/app/models/admin/person.rb +2 -0
- data/spec/internal/app/models/album.rb +2 -0
- data/spec/internal/app/models/animal.rb +2 -0
- data/spec/internal/app/models/article.rb +2 -0
- data/spec/internal/app/models/bird.rb +2 -0
- data/spec/internal/app/models/book.rb +2 -0
- data/spec/internal/app/models/car.rb +2 -0
- data/spec/internal/app/models/categorisation.rb +2 -0
- data/spec/internal/app/models/category.rb +2 -0
- data/spec/internal/app/models/city.rb +2 -0
- data/spec/internal/app/models/colour.rb +2 -0
- data/spec/internal/app/models/event.rb +2 -0
- data/spec/internal/app/models/flightless_bird.rb +2 -0
- data/spec/internal/app/models/genre.rb +2 -0
- data/spec/internal/app/models/hardcover.rb +2 -0
- data/spec/internal/app/models/mammal.rb +2 -0
- data/spec/internal/app/models/manufacturer.rb +2 -0
- data/spec/internal/app/models/product.rb +2 -0
- data/spec/internal/app/models/tag.rb +2 -0
- data/spec/internal/app/models/tagging.rb +2 -0
- data/spec/internal/app/models/tee.rb +2 -0
- data/spec/internal/app/models/tweet.rb +2 -0
- data/spec/internal/app/models/user.rb +2 -0
- data/spec/internal/db/schema.rb +2 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/json_column.rb +3 -5
- data/spec/support/multi_schema.rb +2 -0
- data/spec/support/mysql.rb +25 -0
- data/spec/support/sphinx_yaml_helpers.rb +2 -0
- data/spec/thinking_sphinx/active_record/association_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/attribute/type_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/base_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/column_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/database_adapters_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/field_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/filter_reflection_spec.rb +100 -79
- data/spec/thinking_sphinx/active_record/index_spec.rb +16 -1
- data/spec/thinking_sphinx/active_record/interpreter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/polymorpher_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/property_sql_presenter_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +2 -0
- data/spec/thinking_sphinx/active_record/sql_source_spec.rb +2 -0
- data/spec/thinking_sphinx/attribute_types_spec.rb +2 -0
- data/spec/thinking_sphinx/commands/clear_real_time_spec.rb +46 -0
- data/spec/thinking_sphinx/commands/clear_sql_spec.rb +52 -0
- data/spec/thinking_sphinx/commands/configure_spec.rb +2 -0
- data/spec/thinking_sphinx/commands/index_real_time_spec.rb +33 -0
- data/spec/thinking_sphinx/commands/index_sql_spec.rb +86 -0
- data/spec/thinking_sphinx/commands/merge_and_update_spec.rb +106 -0
- data/spec/thinking_sphinx/commands/merge_spec.rb +48 -0
- data/spec/thinking_sphinx/commands/prepare_spec.rb +23 -0
- data/spec/thinking_sphinx/commands/start_detached_spec.rb +2 -0
- data/spec/thinking_sphinx/commands/stop_spec.rb +13 -4
- data/spec/thinking_sphinx/configuration/minimum_fields_spec.rb +2 -0
- data/spec/thinking_sphinx/configuration_spec.rb +132 -6
- data/spec/thinking_sphinx/connection_spec.rb +2 -0
- data/spec/thinking_sphinx/deletion_spec.rb +2 -0
- data/spec/thinking_sphinx/deltas/default_delta_spec.rb +8 -1
- data/spec/thinking_sphinx/deltas_spec.rb +2 -0
- data/spec/thinking_sphinx/errors_spec.rb +2 -0
- data/spec/thinking_sphinx/excerpter_spec.rb +2 -0
- data/spec/thinking_sphinx/facet_search_spec.rb +8 -6
- data/spec/thinking_sphinx/hooks/guard_presence_spec.rb +30 -0
- data/spec/thinking_sphinx/index_set_spec.rb +2 -0
- data/spec/thinking_sphinx/index_spec.rb +2 -0
- data/spec/thinking_sphinx/interfaces/daemon_spec.rb +19 -11
- data/spec/thinking_sphinx/interfaces/real_time_spec.rb +43 -43
- data/spec/thinking_sphinx/interfaces/sql_spec.rb +76 -52
- data/spec/thinking_sphinx/masks/pagination_mask_spec.rb +2 -0
- data/spec/thinking_sphinx/masks/scopes_mask_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/geographer_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/glazier_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/inquirer_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/sphinxql_spec.rb +2 -1
- data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +2 -0
- data/spec/thinking_sphinx/middlewares/valid_options_spec.rb +2 -0
- data/spec/thinking_sphinx/panes/attributes_pane_spec.rb +2 -0
- data/spec/thinking_sphinx/panes/distance_pane_spec.rb +2 -0
- data/spec/thinking_sphinx/panes/excerpts_pane_spec.rb +2 -0
- data/spec/thinking_sphinx/panes/weight_pane_spec.rb +3 -1
- data/spec/thinking_sphinx/rake_interface_spec.rb +10 -8
- data/spec/thinking_sphinx/real_time/attribute_spec.rb +2 -0
- data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +2 -0
- data/spec/thinking_sphinx/real_time/field_spec.rb +2 -0
- data/spec/thinking_sphinx/real_time/index_spec.rb +14 -0
- data/spec/thinking_sphinx/real_time/interpreter_spec.rb +2 -0
- data/spec/thinking_sphinx/real_time/transcribe_instance_spec.rb +35 -0
- data/spec/thinking_sphinx/real_time/transcriber_spec.rb +101 -0
- data/spec/thinking_sphinx/real_time/translator_spec.rb +17 -0
- data/spec/thinking_sphinx/scopes_spec.rb +2 -0
- data/spec/thinking_sphinx/search/glaze_spec.rb +2 -0
- data/spec/thinking_sphinx/search/query_spec.rb +2 -0
- data/spec/thinking_sphinx/search_spec.rb +2 -0
- data/spec/thinking_sphinx/wildcard_spec.rb +2 -0
- data/spec/thinking_sphinx_spec.rb +2 -0
- data/thinking-sphinx.gemspec +7 -5
- metadata +62 -25
- data/HISTORY +0 -326
- data/bin/literals +0 -9
- data/lib/thinking_sphinx/commands/index.rb +0 -11
- data/lib/thinking_sphinx/controller.rb +0 -12
- data/lib/thinking_sphinx/middlewares/attribute_typer.rb +0 -48
- data/lib/thinking_sphinx/middlewares/utf8.rb +0 -27
- data/lib/thinking_sphinx/sphinxql.rb +0 -23
- data/spec/thinking_sphinx/commands/index_spec.rb +0 -26
- data/spec/thinking_sphinx/middlewares/attribute_typer_spec.rb +0 -42
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe ThinkingSphinx::Commands::Prepare do
|
6
|
+
let(:command) { ThinkingSphinx::Commands::Prepare.new(
|
7
|
+
configuration, {}, stream
|
8
|
+
) }
|
9
|
+
let(:configuration) { double 'configuration',
|
10
|
+
:indices_location => '/path/to/indices'
|
11
|
+
}
|
12
|
+
let(:stream) { double :puts => nil }
|
13
|
+
|
14
|
+
before :each do
|
15
|
+
allow(FileUtils).to receive_messages :mkdir_p => true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "creates the directory for the index files" do
|
19
|
+
expect(FileUtils).to receive(:mkdir_p).with('/path/to/indices')
|
20
|
+
|
21
|
+
command.call
|
22
|
+
end
|
23
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe ThinkingSphinx::Commands::Stop do
|
@@ -7,13 +9,18 @@ RSpec.describe ThinkingSphinx::Commands::Stop do
|
|
7
9
|
let(:configuration) { double 'configuration', :controller => controller }
|
8
10
|
let(:controller) { double 'controller', :stop => true, :pid => 101 }
|
9
11
|
let(:stream) { double :puts => nil }
|
12
|
+
let(:commander) { double :call => nil }
|
10
13
|
|
11
14
|
before :each do
|
12
|
-
|
15
|
+
stub_const 'ThinkingSphinx::Commander', commander
|
16
|
+
|
17
|
+
allow(commander).to receive(:call).
|
18
|
+
with(:running, configuration, {}, stream).and_return(true, true, false)
|
13
19
|
end
|
14
20
|
|
15
21
|
it "prints a message if the daemon is not already running" do
|
16
|
-
allow(
|
22
|
+
allow(commander).to receive(:call).
|
23
|
+
with(:running, configuration, {}, stream).and_return(false)
|
17
24
|
|
18
25
|
expect(stream).to receive(:puts).with('searchd is not currently running.').
|
19
26
|
and_return(nil)
|
@@ -24,7 +31,8 @@ RSpec.describe ThinkingSphinx::Commands::Stop do
|
|
24
31
|
end
|
25
32
|
|
26
33
|
it "does not try to stop the daemon if it's not running" do
|
27
|
-
allow(
|
34
|
+
allow(commander).to receive(:call).
|
35
|
+
with(:running, configuration, {}, stream).and_return(false)
|
28
36
|
|
29
37
|
expect(controller).to_not receive(:stop)
|
30
38
|
|
@@ -44,7 +52,8 @@ RSpec.describe ThinkingSphinx::Commands::Stop do
|
|
44
52
|
end
|
45
53
|
|
46
54
|
it "should retry stopping the daemon until it stops" do
|
47
|
-
allow(
|
55
|
+
allow(commander).to receive(:call).
|
56
|
+
with(:running, configuration, {}, stream).
|
48
57
|
and_return(true, true, true, false)
|
49
58
|
|
50
59
|
expect(controller).to receive(:stop).twice
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ThinkingSphinx::Configuration do
|
@@ -112,6 +114,53 @@ describe ThinkingSphinx::Configuration do
|
|
112
114
|
|
113
115
|
expect(config.indices_location).to eq('/my/index/files')
|
114
116
|
end
|
117
|
+
|
118
|
+
it "respects relative paths" do
|
119
|
+
write_configuration 'indices_location' => 'my/index/files'
|
120
|
+
|
121
|
+
expect(config.indices_location).to eq('my/index/files')
|
122
|
+
end
|
123
|
+
|
124
|
+
it "translates relative paths to absolute if config requests it" do
|
125
|
+
write_configuration(
|
126
|
+
'indices_location' => 'my/index/files',
|
127
|
+
'absolute_paths' => true
|
128
|
+
)
|
129
|
+
|
130
|
+
expect(config.indices_location).to eq(
|
131
|
+
File.join(config.framework.root, 'my/index/files')
|
132
|
+
)
|
133
|
+
end
|
134
|
+
|
135
|
+
it "respects paths that are already absolute" do
|
136
|
+
write_configuration(
|
137
|
+
'indices_location' => '/my/index/files',
|
138
|
+
'absolute_paths' => true
|
139
|
+
)
|
140
|
+
|
141
|
+
expect(config.indices_location).to eq('/my/index/files')
|
142
|
+
end
|
143
|
+
|
144
|
+
it "translates linked directories" do
|
145
|
+
write_configuration(
|
146
|
+
'indices_location' => 'mine/index/files',
|
147
|
+
'absolute_paths' => true
|
148
|
+
)
|
149
|
+
|
150
|
+
framework = ThinkingSphinx::Frameworks.current
|
151
|
+
local_path = File.join framework.root, "mine"
|
152
|
+
linked_path = File.join framework.root, "my"
|
153
|
+
|
154
|
+
FileUtils.mkdir_p linked_path
|
155
|
+
`ln -s #{linked_path} #{local_path}`
|
156
|
+
|
157
|
+
expect(config.indices_location).to eq(
|
158
|
+
File.join(config.framework.root, "my/index/files")
|
159
|
+
)
|
160
|
+
|
161
|
+
FileUtils.rm local_path
|
162
|
+
FileUtils.rmdir linked_path
|
163
|
+
end
|
115
164
|
end
|
116
165
|
|
117
166
|
describe '#initialize' do
|
@@ -342,6 +391,33 @@ describe ThinkingSphinx::Configuration do
|
|
342
391
|
end
|
343
392
|
end
|
344
393
|
|
394
|
+
describe '#log' do
|
395
|
+
it "defaults to an environment-specific file" do
|
396
|
+
expect(config.searchd.log).to eq(
|
397
|
+
File.join(config.framework.root, "log/test.searchd.log")
|
398
|
+
)
|
399
|
+
end
|
400
|
+
|
401
|
+
it "translates linked directories" do
|
402
|
+
framework = ThinkingSphinx::Frameworks.current
|
403
|
+
log_path = File.join framework.root, "log"
|
404
|
+
linked_path = File.join framework.root, "logging"
|
405
|
+
log_exists = File.exist? log_path
|
406
|
+
|
407
|
+
FileUtils.mv log_path, "#{log_path}-tmp" if log_exists
|
408
|
+
FileUtils.mkdir_p linked_path
|
409
|
+
`ln -s #{linked_path} #{log_path}`
|
410
|
+
|
411
|
+
expect(config.searchd.log).to eq(
|
412
|
+
File.join(config.framework.root, "logging/test.searchd.log")
|
413
|
+
)
|
414
|
+
|
415
|
+
FileUtils.rm log_path
|
416
|
+
FileUtils.rmdir linked_path
|
417
|
+
FileUtils.mv "#{log_path}-tmp", log_path if log_exists
|
418
|
+
end unless RUBY_PLATFORM == "java"
|
419
|
+
end
|
420
|
+
|
345
421
|
describe '#mysql41' do
|
346
422
|
it "defaults to 9306" do
|
347
423
|
expect(config.searchd.mysql41).to eq(9306)
|
@@ -359,6 +435,56 @@ describe ThinkingSphinx::Configuration do
|
|
359
435
|
expect(config.searchd.mysql41).to eq(9307)
|
360
436
|
end
|
361
437
|
end
|
438
|
+
|
439
|
+
describe "#socket" do
|
440
|
+
it "does not set anything by default" do
|
441
|
+
expect(config.searchd.socket).to be_nil
|
442
|
+
end
|
443
|
+
|
444
|
+
it "ignores unspecified address and port when socket is set" do
|
445
|
+
write_configuration("socket" => "/my/socket")
|
446
|
+
|
447
|
+
expect(config.searchd.socket).to eq("/my/socket:mysql41")
|
448
|
+
expect(config.searchd.address).to be_nil
|
449
|
+
expect(config.searchd.mysql41).to be_nil
|
450
|
+
end
|
451
|
+
|
452
|
+
it "allows address and socket settings" do
|
453
|
+
write_configuration("socket" => "/my/socket", "address" => "1.1.1.1")
|
454
|
+
|
455
|
+
expect(config.searchd.socket).to eq("/my/socket:mysql41")
|
456
|
+
expect(config.searchd.address).to eq("1.1.1.1")
|
457
|
+
expect(config.searchd.mysql41).to eq(9306)
|
458
|
+
end
|
459
|
+
|
460
|
+
it "allows mysql41 and socket settings" do
|
461
|
+
write_configuration("socket" => "/my/socket", "mysql41" => 9307)
|
462
|
+
|
463
|
+
expect(config.searchd.socket).to eq("/my/socket:mysql41")
|
464
|
+
expect(config.searchd.address).to eq("127.0.0.1")
|
465
|
+
expect(config.searchd.mysql41).to eq(9307)
|
466
|
+
end
|
467
|
+
|
468
|
+
it "allows port and socket settings" do
|
469
|
+
write_configuration("socket" => "/my/socket", "port" => 9307)
|
470
|
+
|
471
|
+
expect(config.searchd.socket).to eq("/my/socket:mysql41")
|
472
|
+
expect(config.searchd.address).to eq("127.0.0.1")
|
473
|
+
expect(config.searchd.mysql41).to eq(9307)
|
474
|
+
end
|
475
|
+
|
476
|
+
it "allows address, mysql41 and socket settings" do
|
477
|
+
write_configuration(
|
478
|
+
"socket" => "/my/socket",
|
479
|
+
"address" => "1.2.3.4",
|
480
|
+
"mysql41" => 9307
|
481
|
+
)
|
482
|
+
|
483
|
+
expect(config.searchd.socket).to eq("/my/socket:mysql41")
|
484
|
+
expect(config.searchd.address).to eq("1.2.3.4")
|
485
|
+
expect(config.searchd.mysql41).to eq(9307)
|
486
|
+
end
|
487
|
+
end
|
362
488
|
end
|
363
489
|
|
364
490
|
describe '#settings' do
|
@@ -390,11 +516,11 @@ describe ThinkingSphinx::Configuration do
|
|
390
516
|
config.settings
|
391
517
|
end
|
392
518
|
|
393
|
-
it "returns
|
519
|
+
it "returns the default hash when no settings for the environment exist" do
|
394
520
|
allow(File).to receive_messages :read => {'test' => {'foo' => 'bar'}}.to_yaml
|
395
521
|
allow(Rails).to receive_messages :env => 'staging'
|
396
522
|
|
397
|
-
expect(config.settings).to eq(
|
523
|
+
expect(config.settings.class).to eq(Hash)
|
398
524
|
end
|
399
525
|
end
|
400
526
|
|
@@ -409,15 +535,15 @@ describe ThinkingSphinx::Configuration do
|
|
409
535
|
config.settings
|
410
536
|
end
|
411
537
|
|
412
|
-
it "returns
|
413
|
-
expect(config.settings).to eq(
|
538
|
+
it "returns a hash" do
|
539
|
+
expect(config.settings.class).to eq(Hash)
|
414
540
|
end
|
415
541
|
end
|
416
542
|
end
|
417
543
|
|
418
544
|
describe '#version' do
|
419
|
-
it "defaults to 2.
|
420
|
-
expect(config.version).to eq('2.
|
545
|
+
it "defaults to 2.2.11" do
|
546
|
+
expect(config.version).to eq('2.2.11')
|
421
547
|
end
|
422
548
|
|
423
549
|
it "respects supplied YAML versions" do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ThinkingSphinx::Deltas::DefaultDelta do
|
@@ -68,13 +70,18 @@ describe ThinkingSphinx::Deltas::DefaultDelta do
|
|
68
70
|
let(:config) { double('config', :controller => controller,
|
69
71
|
:settings => {}) }
|
70
72
|
let(:controller) { double('controller') }
|
73
|
+
let(:commander) { double('commander', :call => true) }
|
71
74
|
|
72
75
|
before :each do
|
76
|
+
stub_const 'ThinkingSphinx::Commander', commander
|
77
|
+
|
73
78
|
allow(ThinkingSphinx::Configuration).to receive_messages :instance => config
|
74
79
|
end
|
75
80
|
|
76
81
|
it "indexes the given index" do
|
77
|
-
expect(
|
82
|
+
expect(commander).to receive(:call).with(
|
83
|
+
:index_sql, config, :indices => ['foo_delta'], :verbose => false
|
84
|
+
)
|
78
85
|
|
79
86
|
delta.index double('index', :name => 'foo_delta')
|
80
87
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ThinkingSphinx::FacetSearch do
|
@@ -25,12 +27,12 @@ describe ThinkingSphinx::FacetSearch do
|
|
25
27
|
DumbSearch = ::Struct.new(:query, :options) do
|
26
28
|
def raw
|
27
29
|
[{
|
28
|
-
'sphinx_internal_class'
|
29
|
-
'price_bracket'
|
30
|
-
'tag_ids'
|
31
|
-
'category_id'
|
32
|
-
|
33
|
-
|
30
|
+
'sphinx_internal_class' => 'Foo',
|
31
|
+
'price_bracket' => 3,
|
32
|
+
'tag_ids' => '1,2',
|
33
|
+
'category_id' => 11,
|
34
|
+
"sphinx_internal_count" => 5,
|
35
|
+
"sphinx_internal_group" => 2
|
34
36
|
}]
|
35
37
|
end
|
36
38
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
RSpec.describe ThinkingSphinx::Hooks::GuardPresence do
|
6
|
+
let(:subject) do
|
7
|
+
ThinkingSphinx::Hooks::GuardPresence.new configuration, stream
|
8
|
+
end
|
9
|
+
let(:configuration) { double "configuration", :indices_location => "/path" }
|
10
|
+
let(:stream) { double "stream", :puts => nil }
|
11
|
+
|
12
|
+
describe "#call" do
|
13
|
+
it "outputs nothing if no guard files exist" do
|
14
|
+
allow(Dir).to receive(:[]).with('/path/ts-*.tmp').and_return([])
|
15
|
+
|
16
|
+
expect(stream).not_to receive(:puts)
|
17
|
+
|
18
|
+
subject.call
|
19
|
+
end
|
20
|
+
|
21
|
+
it "outputs a warning if a guard file exists" do
|
22
|
+
allow(Dir).to receive(:[]).with('/path/ts-*.tmp').
|
23
|
+
and_return(['/path/ts-foo.tmp'])
|
24
|
+
|
25
|
+
expect(stream).to receive(:puts)
|
26
|
+
|
27
|
+
subject.call
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,28 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe ThinkingSphinx::Interfaces::Daemon do
|
4
|
-
let(:configuration) { double 'configuration'
|
5
|
-
let(:controller) { double 'controller', :running? => false }
|
6
|
+
let(:configuration) { double 'configuration' }
|
6
7
|
let(:stream) { double 'stream', :puts => true }
|
8
|
+
let(:commander) { double :call => nil }
|
7
9
|
let(:interface) {
|
8
10
|
ThinkingSphinx::Interfaces::Daemon.new(configuration, {}, stream)
|
9
11
|
}
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
before :each do
|
14
|
+
stub_const 'ThinkingSphinx::Commander', commander
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
allow(commander).to receive(:call).
|
17
|
+
with(:running, configuration, {}, stream).and_return(false)
|
18
|
+
end
|
17
19
|
|
20
|
+
describe '#start' do
|
18
21
|
it "starts the daemon" do
|
19
|
-
expect(
|
22
|
+
expect(commander).to receive(:call).with(
|
23
|
+
:start_detached, configuration, {}, stream
|
24
|
+
)
|
20
25
|
|
21
26
|
interface.start
|
22
27
|
end
|
23
28
|
|
24
29
|
it "raises an error if the daemon is already running" do
|
25
|
-
allow(
|
30
|
+
allow(commander).to receive(:call).
|
31
|
+
with(:running, configuration, {}, stream).and_return(true)
|
26
32
|
|
27
33
|
expect {
|
28
34
|
interface.start
|
@@ -32,7 +38,8 @@ RSpec.describe ThinkingSphinx::Interfaces::Daemon do
|
|
32
38
|
|
33
39
|
describe '#status' do
|
34
40
|
it "reports when the daemon is running" do
|
35
|
-
allow(
|
41
|
+
allow(commander).to receive(:call).
|
42
|
+
with(:running, configuration, {}, stream).and_return(true)
|
36
43
|
|
37
44
|
expect(stream).to receive(:puts).
|
38
45
|
with('The Sphinx daemon searchd is currently running.')
|
@@ -41,7 +48,8 @@ RSpec.describe ThinkingSphinx::Interfaces::Daemon do
|
|
41
48
|
end
|
42
49
|
|
43
50
|
it "reports when the daemon is not running" do
|
44
|
-
allow(
|
51
|
+
allow(commander).to receive(:call).
|
52
|
+
with(:running, configuration, {}, stream).and_return(false)
|
45
53
|
|
46
54
|
expect(stream).to receive(:puts).
|
47
55
|
with('The Sphinx daemon searchd is not currently running.')
|