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.
Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +20 -18
  3. data/Appraisals +28 -16
  4. data/CHANGELOG.markdown +538 -0
  5. data/Gemfile +9 -11
  6. data/README.textile +23 -31
  7. data/Rakefile +2 -0
  8. data/bin/console +2 -1
  9. data/bin/loadsphinx +29 -2
  10. data/lib/thinking-sphinx.rb +2 -0
  11. data/lib/thinking/sphinx.rb +2 -0
  12. data/lib/thinking_sphinx.rb +24 -13
  13. data/lib/thinking_sphinx/active_record.rb +10 -1
  14. data/lib/thinking_sphinx/active_record/association.rb +2 -0
  15. data/lib/thinking_sphinx/active_record/association_proxy.rb +2 -0
  16. data/lib/thinking_sphinx/active_record/association_proxy/attribute_finder.rb +2 -0
  17. data/lib/thinking_sphinx/active_record/association_proxy/attribute_matcher.rb +2 -0
  18. data/lib/thinking_sphinx/active_record/attribute.rb +2 -0
  19. data/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb +2 -0
  20. data/lib/thinking_sphinx/active_record/attribute/type.rb +2 -0
  21. data/lib/thinking_sphinx/active_record/attribute/values.rb +2 -0
  22. data/lib/thinking_sphinx/active_record/base.rb +2 -0
  23. data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +2 -0
  24. data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +2 -0
  25. data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +2 -0
  26. data/lib/thinking_sphinx/active_record/column.rb +2 -0
  27. data/lib/thinking_sphinx/active_record/column_sql_presenter.rb +2 -0
  28. data/lib/thinking_sphinx/active_record/database_adapters.rb +2 -0
  29. data/lib/thinking_sphinx/active_record/database_adapters/abstract_adapter.rb +2 -0
  30. data/lib/thinking_sphinx/active_record/database_adapters/mysql_adapter.rb +2 -0
  31. data/lib/thinking_sphinx/active_record/database_adapters/postgresql_adapter.rb +2 -0
  32. data/lib/thinking_sphinx/active_record/depolymorph/association_reflection.rb +32 -0
  33. data/lib/thinking_sphinx/active_record/depolymorph/base_reflection.rb +32 -0
  34. data/lib/thinking_sphinx/active_record/depolymorph/conditions_reflection.rb +40 -0
  35. data/lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb +35 -0
  36. data/lib/thinking_sphinx/active_record/depolymorph/scoped_reflection.rb +26 -0
  37. data/lib/thinking_sphinx/active_record/field.rb +2 -0
  38. data/lib/thinking_sphinx/active_record/filter_reflection.rb +13 -71
  39. data/lib/thinking_sphinx/active_record/index.rb +2 -0
  40. data/lib/thinking_sphinx/active_record/interpreter.rb +2 -0
  41. data/lib/thinking_sphinx/active_record/join_association.rb +2 -0
  42. data/lib/thinking_sphinx/active_record/log_subscriber.rb +2 -0
  43. data/lib/thinking_sphinx/active_record/polymorpher.rb +2 -0
  44. data/lib/thinking_sphinx/active_record/property.rb +2 -0
  45. data/lib/thinking_sphinx/active_record/property_query.rb +2 -0
  46. data/lib/thinking_sphinx/active_record/property_sql_presenter.rb +2 -0
  47. data/lib/thinking_sphinx/active_record/simple_many_query.rb +2 -0
  48. data/lib/thinking_sphinx/active_record/source_joins.rb +2 -0
  49. data/lib/thinking_sphinx/active_record/sql_builder.rb +2 -0
  50. data/lib/thinking_sphinx/active_record/sql_builder/clause_builder.rb +2 -0
  51. data/lib/thinking_sphinx/active_record/sql_builder/query.rb +2 -0
  52. data/lib/thinking_sphinx/active_record/sql_builder/statement.rb +2 -0
  53. data/lib/thinking_sphinx/active_record/sql_source.rb +15 -3
  54. data/lib/thinking_sphinx/active_record/sql_source/template.rb +2 -0
  55. data/lib/thinking_sphinx/attribute_types.rb +2 -0
  56. data/lib/thinking_sphinx/batched_search.rb +2 -0
  57. data/lib/thinking_sphinx/callbacks.rb +2 -0
  58. data/lib/thinking_sphinx/capistrano.rb +2 -0
  59. data/lib/thinking_sphinx/capistrano/v2.rb +2 -0
  60. data/lib/thinking_sphinx/capistrano/v3.rb +2 -0
  61. data/lib/thinking_sphinx/commander.rb +27 -0
  62. data/lib/thinking_sphinx/commands.rb +20 -0
  63. data/lib/thinking_sphinx/commands/base.rb +9 -1
  64. data/lib/thinking_sphinx/commands/clear_real_time.rb +22 -0
  65. data/lib/thinking_sphinx/commands/clear_sql.rb +18 -0
  66. data/lib/thinking_sphinx/commands/configure.rb +2 -0
  67. data/lib/thinking_sphinx/commands/index_real_time.rb +17 -0
  68. data/lib/thinking_sphinx/commands/index_sql.rb +25 -0
  69. data/lib/thinking_sphinx/commands/merge.rb +27 -0
  70. data/lib/thinking_sphinx/commands/merge_and_update.rb +57 -0
  71. data/lib/thinking_sphinx/commands/prepare.rb +13 -0
  72. data/lib/thinking_sphinx/commands/rotate.rb +13 -0
  73. data/lib/thinking_sphinx/commands/running.rb +13 -0
  74. data/lib/thinking_sphinx/commands/start_attached.rb +2 -0
  75. data/lib/thinking_sphinx/commands/start_detached.rb +3 -1
  76. data/lib/thinking_sphinx/commands/stop.rb +4 -2
  77. data/lib/thinking_sphinx/configuration.rb +28 -47
  78. data/lib/thinking_sphinx/configuration/consistent_ids.rb +2 -0
  79. data/lib/thinking_sphinx/configuration/defaults.rb +2 -0
  80. data/lib/thinking_sphinx/configuration/distributed_indices.rb +2 -0
  81. data/lib/thinking_sphinx/configuration/duplicate_names.rb +2 -0
  82. data/lib/thinking_sphinx/configuration/minimum_fields.rb +2 -0
  83. data/lib/thinking_sphinx/connection.rb +4 -5
  84. data/lib/thinking_sphinx/connection/client.rb +21 -0
  85. data/lib/thinking_sphinx/connection/jruby.rb +7 -2
  86. data/lib/thinking_sphinx/connection/mri.rb +2 -4
  87. data/lib/thinking_sphinx/core.rb +2 -0
  88. data/lib/thinking_sphinx/core/field.rb +2 -0
  89. data/lib/thinking_sphinx/core/index.rb +4 -1
  90. data/lib/thinking_sphinx/core/interpreter.rb +2 -0
  91. data/lib/thinking_sphinx/core/property.rb +2 -0
  92. data/lib/thinking_sphinx/core/settings.rb +2 -0
  93. data/lib/thinking_sphinx/deletion.rb +2 -0
  94. data/lib/thinking_sphinx/deltas.rb +2 -0
  95. data/lib/thinking_sphinx/deltas/default_delta.rb +2 -0
  96. data/lib/thinking_sphinx/deltas/delete_job.rb +2 -0
  97. data/lib/thinking_sphinx/deltas/index_job.rb +9 -1
  98. data/lib/thinking_sphinx/distributed.rb +2 -0
  99. data/lib/thinking_sphinx/distributed/index.rb +2 -0
  100. data/lib/thinking_sphinx/errors.rb +9 -0
  101. data/lib/thinking_sphinx/excerpter.rb +2 -0
  102. data/lib/thinking_sphinx/facet.rb +4 -3
  103. data/lib/thinking_sphinx/facet_search.rb +4 -2
  104. data/lib/thinking_sphinx/float_formatter.rb +2 -0
  105. data/lib/thinking_sphinx/frameworks.rb +2 -0
  106. data/lib/thinking_sphinx/frameworks/plain.rb +2 -0
  107. data/lib/thinking_sphinx/frameworks/rails.rb +2 -0
  108. data/lib/thinking_sphinx/guard.rb +3 -0
  109. data/lib/thinking_sphinx/guard/file.rb +2 -0
  110. data/lib/thinking_sphinx/guard/files.rb +2 -0
  111. data/lib/thinking_sphinx/guard/none.rb +7 -0
  112. data/lib/thinking_sphinx/hooks/guard_presence.rb +34 -0
  113. data/lib/thinking_sphinx/index.rb +2 -0
  114. data/lib/thinking_sphinx/index_set.rb +2 -0
  115. data/lib/thinking_sphinx/indexing_strategies/all_at_once.rb +2 -0
  116. data/lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb +2 -0
  117. data/lib/thinking_sphinx/interfaces.rb +10 -0
  118. data/lib/thinking_sphinx/interfaces/base.rb +13 -0
  119. data/lib/thinking_sphinx/interfaces/daemon.rb +6 -11
  120. data/lib/thinking_sphinx/interfaces/real_time.rb +19 -14
  121. data/lib/thinking_sphinx/interfaces/sql.rb +22 -10
  122. data/lib/thinking_sphinx/logger.rb +2 -0
  123. data/lib/thinking_sphinx/masks.rb +2 -0
  124. data/lib/thinking_sphinx/masks/group_enumerators_mask.rb +6 -4
  125. data/lib/thinking_sphinx/masks/pagination_mask.rb +2 -0
  126. data/lib/thinking_sphinx/masks/scopes_mask.rb +2 -0
  127. data/lib/thinking_sphinx/masks/weight_enumerator_mask.rb +3 -1
  128. data/lib/thinking_sphinx/middlewares.rb +5 -3
  129. data/lib/thinking_sphinx/middlewares/active_record_translator.rb +2 -0
  130. data/lib/thinking_sphinx/middlewares/geographer.rb +2 -0
  131. data/lib/thinking_sphinx/middlewares/glazier.rb +2 -0
  132. data/lib/thinking_sphinx/middlewares/ids_only.rb +2 -0
  133. data/lib/thinking_sphinx/middlewares/inquirer.rb +2 -0
  134. data/lib/thinking_sphinx/middlewares/middleware.rb +2 -0
  135. data/lib/thinking_sphinx/middlewares/sphinxql.rb +4 -2
  136. data/lib/thinking_sphinx/middlewares/stale_id_checker.rb +2 -0
  137. data/lib/thinking_sphinx/middlewares/stale_id_filter.rb +2 -0
  138. data/lib/thinking_sphinx/middlewares/valid_options.rb +2 -0
  139. data/lib/thinking_sphinx/panes.rb +2 -0
  140. data/lib/thinking_sphinx/panes/attributes_pane.rb +2 -0
  141. data/lib/thinking_sphinx/panes/distance_pane.rb +2 -0
  142. data/lib/thinking_sphinx/panes/excerpts_pane.rb +2 -0
  143. data/lib/thinking_sphinx/panes/weight_pane.rb +3 -1
  144. data/lib/thinking_sphinx/query.rb +2 -0
  145. data/lib/thinking_sphinx/railtie.rb +2 -0
  146. data/lib/thinking_sphinx/rake_interface.rb +3 -1
  147. data/lib/thinking_sphinx/real_time.rb +3 -0
  148. data/lib/thinking_sphinx/real_time/attribute.rb +2 -0
  149. data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +2 -0
  150. data/lib/thinking_sphinx/real_time/field.rb +2 -0
  151. data/lib/thinking_sphinx/real_time/index.rb +2 -0
  152. data/lib/thinking_sphinx/real_time/index/template.rb +2 -0
  153. data/lib/thinking_sphinx/real_time/interpreter.rb +2 -0
  154. data/lib/thinking_sphinx/real_time/populator.rb +2 -1
  155. data/lib/thinking_sphinx/real_time/property.rb +2 -0
  156. data/lib/thinking_sphinx/real_time/transcribe_instance.rb +38 -0
  157. data/lib/thinking_sphinx/real_time/transcriber.rb +18 -27
  158. data/lib/thinking_sphinx/real_time/translator.rb +3 -1
  159. data/lib/thinking_sphinx/scopes.rb +2 -0
  160. data/lib/thinking_sphinx/search.rb +2 -0
  161. data/lib/thinking_sphinx/search/batch_inquirer.rb +2 -0
  162. data/lib/thinking_sphinx/search/context.rb +2 -0
  163. data/lib/thinking_sphinx/search/glaze.rb +2 -0
  164. data/lib/thinking_sphinx/search/merger.rb +2 -0
  165. data/lib/thinking_sphinx/search/query.rb +2 -0
  166. data/lib/thinking_sphinx/search/stale_ids_exception.rb +2 -0
  167. data/lib/thinking_sphinx/settings.rb +110 -0
  168. data/lib/thinking_sphinx/sinatra.rb +2 -0
  169. data/lib/thinking_sphinx/subscribers/populator_subscriber.rb +18 -0
  170. data/lib/thinking_sphinx/tasks.rb +13 -46
  171. data/lib/thinking_sphinx/test.rb +2 -0
  172. data/lib/thinking_sphinx/utf8.rb +2 -0
  173. data/lib/thinking_sphinx/wildcard.rb +2 -0
  174. data/lib/thinking_sphinx/with_output.rb +2 -0
  175. data/spec/acceptance/association_scoping_spec.rb +2 -0
  176. data/spec/acceptance/attribute_access_spec.rb +4 -4
  177. data/spec/acceptance/attribute_updates_spec.rb +2 -0
  178. data/spec/acceptance/batch_searching_spec.rb +2 -0
  179. data/spec/acceptance/big_integers_spec.rb +2 -0
  180. data/spec/acceptance/connection_spec.rb +2 -0
  181. data/spec/acceptance/excerpts_spec.rb +1 -0
  182. data/spec/acceptance/facets_spec.rb +2 -3
  183. data/spec/acceptance/geosearching_spec.rb +3 -1
  184. data/spec/acceptance/grouping_by_attributes_spec.rb +2 -0
  185. data/spec/acceptance/index_options_spec.rb +2 -0
  186. data/spec/acceptance/indexing_spec.rb +2 -0
  187. data/spec/acceptance/merging_spec.rb +90 -0
  188. data/spec/acceptance/paginating_search_results_spec.rb +2 -0
  189. data/spec/acceptance/real_time_updates_spec.rb +2 -0
  190. data/spec/acceptance/remove_deleted_records_spec.rb +2 -0
  191. data/spec/acceptance/search_counts_spec.rb +2 -0
  192. data/spec/acceptance/search_for_just_ids_spec.rb +2 -0
  193. data/spec/acceptance/searching_across_models_spec.rb +2 -0
  194. data/spec/acceptance/searching_across_schemas_spec.rb +2 -0
  195. data/spec/acceptance/searching_on_fields_spec.rb +2 -0
  196. data/spec/acceptance/searching_with_filters_spec.rb +2 -0
  197. data/spec/acceptance/searching_with_sti_spec.rb +2 -0
  198. data/spec/acceptance/searching_within_a_model_spec.rb +2 -0
  199. data/spec/acceptance/sorting_search_results_spec.rb +2 -0
  200. data/spec/acceptance/spec_helper.rb +2 -13
  201. data/spec/acceptance/specifying_sql_spec.rb +2 -0
  202. data/spec/acceptance/sphinx_scopes_spec.rb +2 -0
  203. data/spec/acceptance/sql_deltas_spec.rb +2 -0
  204. data/spec/acceptance/support/database_cleaner.rb +2 -0
  205. data/spec/acceptance/support/sphinx_controller.rb +16 -5
  206. data/spec/acceptance/support/sphinx_helpers.rb +11 -0
  207. data/spec/acceptance/suspended_deltas_spec.rb +2 -0
  208. data/spec/internal/app/indices/admin_person_index.rb +2 -0
  209. data/spec/internal/app/indices/album_index.rb +2 -0
  210. data/spec/internal/app/indices/animal_index.rb +2 -0
  211. data/spec/internal/app/indices/article_index.rb +2 -0
  212. data/spec/internal/app/indices/bird_index.rb +2 -0
  213. data/spec/internal/app/indices/book_index.rb +2 -0
  214. data/spec/internal/app/indices/car_index.rb +2 -0
  215. data/spec/internal/app/indices/city_index.rb +2 -0
  216. data/spec/internal/app/indices/product_index.rb +2 -0
  217. data/spec/internal/app/indices/tee_index.rb +2 -0
  218. data/spec/internal/app/indices/user_index.rb +2 -0
  219. data/spec/internal/app/models/admin/person.rb +2 -0
  220. data/spec/internal/app/models/album.rb +2 -0
  221. data/spec/internal/app/models/animal.rb +2 -0
  222. data/spec/internal/app/models/article.rb +2 -0
  223. data/spec/internal/app/models/bird.rb +2 -0
  224. data/spec/internal/app/models/book.rb +2 -0
  225. data/spec/internal/app/models/car.rb +2 -0
  226. data/spec/internal/app/models/categorisation.rb +2 -0
  227. data/spec/internal/app/models/category.rb +2 -0
  228. data/spec/internal/app/models/city.rb +2 -0
  229. data/spec/internal/app/models/colour.rb +2 -0
  230. data/spec/internal/app/models/event.rb +2 -0
  231. data/spec/internal/app/models/flightless_bird.rb +2 -0
  232. data/spec/internal/app/models/genre.rb +2 -0
  233. data/spec/internal/app/models/hardcover.rb +2 -0
  234. data/spec/internal/app/models/mammal.rb +2 -0
  235. data/spec/internal/app/models/manufacturer.rb +2 -0
  236. data/spec/internal/app/models/product.rb +2 -0
  237. data/spec/internal/app/models/tag.rb +2 -0
  238. data/spec/internal/app/models/tagging.rb +2 -0
  239. data/spec/internal/app/models/tee.rb +2 -0
  240. data/spec/internal/app/models/tweet.rb +2 -0
  241. data/spec/internal/app/models/user.rb +2 -0
  242. data/spec/internal/db/schema.rb +2 -0
  243. data/spec/spec_helper.rb +4 -1
  244. data/spec/support/json_column.rb +3 -5
  245. data/spec/support/multi_schema.rb +2 -0
  246. data/spec/support/mysql.rb +25 -0
  247. data/spec/support/sphinx_yaml_helpers.rb +2 -0
  248. data/spec/thinking_sphinx/active_record/association_spec.rb +2 -0
  249. data/spec/thinking_sphinx/active_record/attribute/type_spec.rb +2 -0
  250. data/spec/thinking_sphinx/active_record/base_spec.rb +2 -0
  251. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +2 -0
  252. data/spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb +2 -0
  253. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +2 -0
  254. data/spec/thinking_sphinx/active_record/column_spec.rb +2 -0
  255. data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +2 -0
  256. data/spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb +2 -0
  257. data/spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb +2 -0
  258. data/spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb +2 -0
  259. data/spec/thinking_sphinx/active_record/database_adapters_spec.rb +2 -0
  260. data/spec/thinking_sphinx/active_record/field_spec.rb +2 -0
  261. data/spec/thinking_sphinx/active_record/filter_reflection_spec.rb +100 -79
  262. data/spec/thinking_sphinx/active_record/index_spec.rb +16 -1
  263. data/spec/thinking_sphinx/active_record/interpreter_spec.rb +2 -0
  264. data/spec/thinking_sphinx/active_record/polymorpher_spec.rb +2 -0
  265. data/spec/thinking_sphinx/active_record/property_sql_presenter_spec.rb +2 -0
  266. data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +2 -0
  267. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +2 -0
  268. data/spec/thinking_sphinx/attribute_types_spec.rb +2 -0
  269. data/spec/thinking_sphinx/commands/clear_real_time_spec.rb +46 -0
  270. data/spec/thinking_sphinx/commands/clear_sql_spec.rb +52 -0
  271. data/spec/thinking_sphinx/commands/configure_spec.rb +2 -0
  272. data/spec/thinking_sphinx/commands/index_real_time_spec.rb +33 -0
  273. data/spec/thinking_sphinx/commands/index_sql_spec.rb +86 -0
  274. data/spec/thinking_sphinx/commands/merge_and_update_spec.rb +106 -0
  275. data/spec/thinking_sphinx/commands/merge_spec.rb +48 -0
  276. data/spec/thinking_sphinx/commands/prepare_spec.rb +23 -0
  277. data/spec/thinking_sphinx/commands/start_detached_spec.rb +2 -0
  278. data/spec/thinking_sphinx/commands/stop_spec.rb +13 -4
  279. data/spec/thinking_sphinx/configuration/minimum_fields_spec.rb +2 -0
  280. data/spec/thinking_sphinx/configuration_spec.rb +132 -6
  281. data/spec/thinking_sphinx/connection_spec.rb +2 -0
  282. data/spec/thinking_sphinx/deletion_spec.rb +2 -0
  283. data/spec/thinking_sphinx/deltas/default_delta_spec.rb +8 -1
  284. data/spec/thinking_sphinx/deltas_spec.rb +2 -0
  285. data/spec/thinking_sphinx/errors_spec.rb +2 -0
  286. data/spec/thinking_sphinx/excerpter_spec.rb +2 -0
  287. data/spec/thinking_sphinx/facet_search_spec.rb +8 -6
  288. data/spec/thinking_sphinx/hooks/guard_presence_spec.rb +30 -0
  289. data/spec/thinking_sphinx/index_set_spec.rb +2 -0
  290. data/spec/thinking_sphinx/index_spec.rb +2 -0
  291. data/spec/thinking_sphinx/interfaces/daemon_spec.rb +19 -11
  292. data/spec/thinking_sphinx/interfaces/real_time_spec.rb +43 -43
  293. data/spec/thinking_sphinx/interfaces/sql_spec.rb +76 -52
  294. data/spec/thinking_sphinx/masks/pagination_mask_spec.rb +2 -0
  295. data/spec/thinking_sphinx/masks/scopes_mask_spec.rb +2 -0
  296. data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +2 -0
  297. data/spec/thinking_sphinx/middlewares/geographer_spec.rb +2 -0
  298. data/spec/thinking_sphinx/middlewares/glazier_spec.rb +2 -0
  299. data/spec/thinking_sphinx/middlewares/inquirer_spec.rb +2 -0
  300. data/spec/thinking_sphinx/middlewares/sphinxql_spec.rb +2 -1
  301. data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +2 -0
  302. data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +2 -0
  303. data/spec/thinking_sphinx/middlewares/valid_options_spec.rb +2 -0
  304. data/spec/thinking_sphinx/panes/attributes_pane_spec.rb +2 -0
  305. data/spec/thinking_sphinx/panes/distance_pane_spec.rb +2 -0
  306. data/spec/thinking_sphinx/panes/excerpts_pane_spec.rb +2 -0
  307. data/spec/thinking_sphinx/panes/weight_pane_spec.rb +3 -1
  308. data/spec/thinking_sphinx/rake_interface_spec.rb +10 -8
  309. data/spec/thinking_sphinx/real_time/attribute_spec.rb +2 -0
  310. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +2 -0
  311. data/spec/thinking_sphinx/real_time/field_spec.rb +2 -0
  312. data/spec/thinking_sphinx/real_time/index_spec.rb +14 -0
  313. data/spec/thinking_sphinx/real_time/interpreter_spec.rb +2 -0
  314. data/spec/thinking_sphinx/real_time/transcribe_instance_spec.rb +35 -0
  315. data/spec/thinking_sphinx/real_time/transcriber_spec.rb +101 -0
  316. data/spec/thinking_sphinx/real_time/translator_spec.rb +17 -0
  317. data/spec/thinking_sphinx/scopes_spec.rb +2 -0
  318. data/spec/thinking_sphinx/search/glaze_spec.rb +2 -0
  319. data/spec/thinking_sphinx/search/query_spec.rb +2 -0
  320. data/spec/thinking_sphinx/search_spec.rb +2 -0
  321. data/spec/thinking_sphinx/wildcard_spec.rb +2 -0
  322. data/spec/thinking_sphinx_spec.rb +2 -0
  323. data/thinking-sphinx.gemspec +7 -5
  324. metadata +62 -25
  325. data/HISTORY +0 -326
  326. data/bin/literals +0 -9
  327. data/lib/thinking_sphinx/commands/index.rb +0 -11
  328. data/lib/thinking_sphinx/controller.rb +0 -12
  329. data/lib/thinking_sphinx/middlewares/attribute_typer.rb +0 -48
  330. data/lib/thinking_sphinx/middlewares/utf8.rb +0 -27
  331. data/lib/thinking_sphinx/sphinxql.rb +0 -23
  332. data/spec/thinking_sphinx/commands/index_spec.rb +0 -26
  333. data/spec/thinking_sphinx/middlewares/attribute_typer_spec.rb +0 -42
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::RealTime::Attribute do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::RealTime::Field do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::RealTime::Index do
@@ -29,6 +31,18 @@ describe ThinkingSphinx::RealTime::Index do
29
31
  end
30
32
  end
31
33
 
34
+ describe '#docinfo' do
35
+ it "defaults to extern" do
36
+ expect(index.docinfo).to eq(:extern)
37
+ end
38
+
39
+ it "can be disabled" do
40
+ config.settings["skip_docinfo"] = true
41
+
42
+ expect(index.docinfo).to be_nil
43
+ end
44
+ end
45
+
32
46
  describe '#document_id_for_key' do
33
47
  it "calculates the document id based on offset and number of indices" do
34
48
  allow(config).to receive_message_chain(:indices, :count).and_return(5)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::RealTime::Interpreter do
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe ThinkingSphinx::RealTime::TranscribeInstance do
6
+ let(:subject) do
7
+ ThinkingSphinx::RealTime::TranscribeInstance.call(
8
+ instance, index, [property_a, property_b, property_c]
9
+ )
10
+ end
11
+ let(:instance) { double :id => 43 }
12
+ let(:index) { double :document_id_for_key => 46 }
13
+ let(:property_a) { double :translate => 'A' }
14
+ let(:property_b) { double :translate => 'B' }
15
+ let(:property_c) { double :translate => 'C' }
16
+
17
+ it 'returns an array of each translated property, and the document id' do
18
+ expect(subject).to eq([46, 'A', 'B', 'C'])
19
+ end
20
+
21
+ it 'raises an error if something goes wrong' do
22
+ allow(property_b).to receive(:translate).and_raise(StandardError)
23
+
24
+ expect { subject }.to raise_error(ThinkingSphinx::TranscriptionError)
25
+ end
26
+
27
+ it 'notes the instance and property in the wrapper error' do
28
+ allow(property_b).to receive(:translate).and_raise(StandardError)
29
+
30
+ expect { subject }.to raise_error do |wrapper|
31
+ expect(wrapper.instance).to eq(instance)
32
+ expect(wrapper.property).to eq(property_b)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe ThinkingSphinx::RealTime::Transcriber do
6
+ let(:subject) { ThinkingSphinx::RealTime::Transcriber.new index }
7
+ let(:index) { double 'index', :name => 'foo_core', :conditions => [],
8
+ :fields => [double(:name => 'field_a'), double(:name => 'field_b')],
9
+ :attributes => [double(:name => 'attr_a'), double(:name => 'attr_b')] }
10
+ let(:insert) { double :replace! => replace }
11
+ let(:replace) { double :to_sql => 'REPLACE QUERY' }
12
+ let(:connection) { double :execute => true }
13
+ let(:instance_a) { double :id => 48, :persisted? => true }
14
+ let(:instance_b) { double :id => 49, :persisted? => true }
15
+ let(:properties_a) { double }
16
+ let(:properties_b) { double }
17
+
18
+ before :each do
19
+ allow(Riddle::Query::Insert).to receive(:new).and_return(insert)
20
+ allow(ThinkingSphinx::Connection).to receive(:take).and_yield(connection)
21
+ allow(ThinkingSphinx::RealTime::TranscribeInstance).to receive(:call).
22
+ with(instance_a, index, anything).and_return(properties_a)
23
+ allow(ThinkingSphinx::RealTime::TranscribeInstance).to receive(:call).
24
+ with(instance_b, index, anything).and_return(properties_b)
25
+ end
26
+
27
+ it "generates a SphinxQL command" do
28
+ expect(Riddle::Query::Insert).to receive(:new).with(
29
+ 'foo_core',
30
+ ['id', 'field_a', 'field_b', 'attr_a', 'attr_b'],
31
+ [properties_a, properties_b]
32
+ )
33
+
34
+ subject.copy instance_a, instance_b
35
+ end
36
+
37
+ it "executes the SphinxQL command" do
38
+ expect(connection).to receive(:execute).with('REPLACE QUERY')
39
+
40
+ subject.copy instance_a, instance_b
41
+ end
42
+
43
+ it "skips instances that aren't in the database" do
44
+ allow(instance_a).to receive(:persisted?).and_return(false)
45
+
46
+ expect(Riddle::Query::Insert).to receive(:new).with(
47
+ 'foo_core',
48
+ ['id', 'field_a', 'field_b', 'attr_a', 'attr_b'],
49
+ [properties_b]
50
+ )
51
+
52
+ subject.copy instance_a, instance_b
53
+ end
54
+
55
+ it "skips instances that fail a symbol condition" do
56
+ index.conditions << :ok?
57
+ allow(instance_a).to receive(:ok?).and_return(true)
58
+ allow(instance_b).to receive(:ok?).and_return(false)
59
+
60
+ expect(Riddle::Query::Insert).to receive(:new).with(
61
+ 'foo_core',
62
+ ['id', 'field_a', 'field_b', 'attr_a', 'attr_b'],
63
+ [properties_a]
64
+ )
65
+
66
+ subject.copy instance_a, instance_b
67
+ end
68
+
69
+ it "skips instances that fail a Proc condition" do
70
+ index.conditions << Proc.new { |instance| instance.ok? }
71
+ allow(instance_a).to receive(:ok?).and_return(true)
72
+ allow(instance_b).to receive(:ok?).and_return(false)
73
+
74
+ expect(Riddle::Query::Insert).to receive(:new).with(
75
+ 'foo_core',
76
+ ['id', 'field_a', 'field_b', 'attr_a', 'attr_b'],
77
+ [properties_a]
78
+ )
79
+
80
+ subject.copy instance_a, instance_b
81
+ end
82
+
83
+ it "skips instances that throw an error while transcribing values" do
84
+ error = ThinkingSphinx::TranscriptionError.new
85
+ error.instance = instance_a
86
+ error.inner_exception = StandardError.new
87
+
88
+ allow(ThinkingSphinx::RealTime::TranscribeInstance).to receive(:call).
89
+ with(instance_a, index, anything).
90
+ and_raise(error)
91
+ allow(ThinkingSphinx.output).to receive(:puts).and_return(nil)
92
+
93
+ expect(Riddle::Query::Insert).to receive(:new).with(
94
+ 'foo_core',
95
+ ['id', 'field_a', 'field_b', 'attr_a', 'attr_b'],
96
+ [properties_b]
97
+ )
98
+
99
+ subject.copy instance_a, instance_b
100
+ end
101
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe ThinkingSphinx::RealTime::Translator do
6
+ let(:subject) { ThinkingSphinx::RealTime::Translator.call object, column }
7
+ let(:object) { double }
8
+ let(:column) { double :__stack => [], :__name => :title }
9
+
10
+ it "converts non-UTF-8 strings to UTF-8" do
11
+ allow(object).to receive(:title).
12
+ and_return "hello".dup.force_encoding("ASCII-8BIT")
13
+
14
+ expect(subject).to eq("hello")
15
+ expect(subject.encoding.name).to eq("UTF-8")
16
+ end
17
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::Scopes do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ThinkingSphinx
2
4
  class Search; end
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ThinkingSphinx
2
4
  class Search; end
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx::Search do
@@ -1,4 +1,6 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
2
4
  module ThinkingSphinx; end
3
5
 
4
6
  require './lib/thinking_sphinx/wildcard'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ThinkingSphinx do
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -*- encoding: utf-8 -*-
2
4
  $:.push File.expand_path('../lib', __FILE__)
3
5
 
4
6
  Gem::Specification.new do |s|
5
7
  s.name = 'thinking-sphinx'
6
- s.version = '3.4.2'
8
+ s.version = '4.0.0'
7
9
  s.platform = Gem::Platform::RUBY
8
10
  s.authors = ["Pat Allan"]
9
11
  s.email = ["pat@freelancing-gods.com"]
@@ -26,11 +28,11 @@ Gem::Specification.new do |s|
26
28
  s.add_runtime_dependency 'joiner', '>= 0.2.0'
27
29
  s.add_runtime_dependency 'middleware', '>= 0.1.0'
28
30
  s.add_runtime_dependency 'innertube', '>= 1.0.2'
29
- s.add_runtime_dependency 'riddle', '>= 2.0.0'
31
+ s.add_runtime_dependency 'riddle', '~> 2.3'
30
32
 
31
33
  s.add_development_dependency 'appraisal', '~> 1.0.2'
32
- s.add_development_dependency 'combustion', '~> 0.7.0'
34
+ s.add_development_dependency 'combustion', '~> 0.8.0'
33
35
  s.add_development_dependency 'database_cleaner', '~> 1.6.0'
34
- s.add_development_dependency 'rspec', '~> 3.6.0'
35
- s.add_development_dependency 'rspec-retry', '~> 0.5.4'
36
+ s.add_development_dependency 'rspec', '~> 3.7.0'
37
+ s.add_development_dependency 'rspec-retry', '~> 0.5.6'
36
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Allan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-29 00:00:00.000000000 Z
11
+ date: 2018-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: riddle
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.0.0
89
+ version: '2.3'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.0.0
96
+ version: '2.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: appraisal
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.7.0
117
+ version: 0.8.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.7.0
124
+ version: 0.8.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: database_cleaner
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,35 +142,34 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 3.6.0
145
+ version: 3.7.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 3.6.0
152
+ version: 3.7.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rspec-retry
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.5.4
159
+ version: 0.5.6
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.5.4
166
+ version: 0.5.6
167
167
  description: An intelligent layer for ActiveRecord (via Rails and Sinatra) for the
168
168
  Sphinx full-text search tool.
169
169
  email:
170
170
  - pat@freelancing-gods.com
171
171
  executables:
172
172
  - console
173
- - literals
174
173
  - loadsphinx
175
174
  extensions: []
176
175
  extra_rdoc_files: []
@@ -178,13 +177,12 @@ files:
178
177
  - ".gitignore"
179
178
  - ".travis.yml"
180
179
  - Appraisals
180
+ - CHANGELOG.markdown
181
181
  - Gemfile
182
- - HISTORY
183
182
  - LICENCE
184
183
  - README.textile
185
184
  - Rakefile
186
185
  - bin/console
187
- - bin/literals
188
186
  - bin/loadsphinx
189
187
  - lib/thinking-sphinx.rb
190
188
  - lib/thinking/sphinx.rb
@@ -208,6 +206,11 @@ files:
208
206
  - lib/thinking_sphinx/active_record/database_adapters/abstract_adapter.rb
209
207
  - lib/thinking_sphinx/active_record/database_adapters/mysql_adapter.rb
210
208
  - lib/thinking_sphinx/active_record/database_adapters/postgresql_adapter.rb
209
+ - lib/thinking_sphinx/active_record/depolymorph/association_reflection.rb
210
+ - lib/thinking_sphinx/active_record/depolymorph/base_reflection.rb
211
+ - lib/thinking_sphinx/active_record/depolymorph/conditions_reflection.rb
212
+ - lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb
213
+ - lib/thinking_sphinx/active_record/depolymorph/scoped_reflection.rb
211
214
  - lib/thinking_sphinx/active_record/field.rb
212
215
  - lib/thinking_sphinx/active_record/filter_reflection.rb
213
216
  - lib/thinking_sphinx/active_record/index.rb
@@ -232,9 +235,19 @@ files:
232
235
  - lib/thinking_sphinx/capistrano.rb
233
236
  - lib/thinking_sphinx/capistrano/v2.rb
234
237
  - lib/thinking_sphinx/capistrano/v3.rb
238
+ - lib/thinking_sphinx/commander.rb
239
+ - lib/thinking_sphinx/commands.rb
235
240
  - lib/thinking_sphinx/commands/base.rb
241
+ - lib/thinking_sphinx/commands/clear_real_time.rb
242
+ - lib/thinking_sphinx/commands/clear_sql.rb
236
243
  - lib/thinking_sphinx/commands/configure.rb
237
- - lib/thinking_sphinx/commands/index.rb
244
+ - lib/thinking_sphinx/commands/index_real_time.rb
245
+ - lib/thinking_sphinx/commands/index_sql.rb
246
+ - lib/thinking_sphinx/commands/merge.rb
247
+ - lib/thinking_sphinx/commands/merge_and_update.rb
248
+ - lib/thinking_sphinx/commands/prepare.rb
249
+ - lib/thinking_sphinx/commands/rotate.rb
250
+ - lib/thinking_sphinx/commands/running.rb
238
251
  - lib/thinking_sphinx/commands/start_attached.rb
239
252
  - lib/thinking_sphinx/commands/start_detached.rb
240
253
  - lib/thinking_sphinx/commands/stop.rb
@@ -248,7 +261,6 @@ files:
248
261
  - lib/thinking_sphinx/connection/client.rb
249
262
  - lib/thinking_sphinx/connection/jruby.rb
250
263
  - lib/thinking_sphinx/connection/mri.rb
251
- - lib/thinking_sphinx/controller.rb
252
264
  - lib/thinking_sphinx/core.rb
253
265
  - lib/thinking_sphinx/core/field.rb
254
266
  - lib/thinking_sphinx/core/index.rb
@@ -273,10 +285,14 @@ files:
273
285
  - lib/thinking_sphinx/guard.rb
274
286
  - lib/thinking_sphinx/guard/file.rb
275
287
  - lib/thinking_sphinx/guard/files.rb
288
+ - lib/thinking_sphinx/guard/none.rb
289
+ - lib/thinking_sphinx/hooks/guard_presence.rb
276
290
  - lib/thinking_sphinx/index.rb
277
291
  - lib/thinking_sphinx/index_set.rb
278
292
  - lib/thinking_sphinx/indexing_strategies/all_at_once.rb
279
293
  - lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb
294
+ - lib/thinking_sphinx/interfaces.rb
295
+ - lib/thinking_sphinx/interfaces/base.rb
280
296
  - lib/thinking_sphinx/interfaces/daemon.rb
281
297
  - lib/thinking_sphinx/interfaces/real_time.rb
282
298
  - lib/thinking_sphinx/interfaces/sql.rb
@@ -288,7 +304,6 @@ files:
288
304
  - lib/thinking_sphinx/masks/weight_enumerator_mask.rb
289
305
  - lib/thinking_sphinx/middlewares.rb
290
306
  - lib/thinking_sphinx/middlewares/active_record_translator.rb
291
- - lib/thinking_sphinx/middlewares/attribute_typer.rb
292
307
  - lib/thinking_sphinx/middlewares/geographer.rb
293
308
  - lib/thinking_sphinx/middlewares/glazier.rb
294
309
  - lib/thinking_sphinx/middlewares/ids_only.rb
@@ -297,7 +312,6 @@ files:
297
312
  - lib/thinking_sphinx/middlewares/sphinxql.rb
298
313
  - lib/thinking_sphinx/middlewares/stale_id_checker.rb
299
314
  - lib/thinking_sphinx/middlewares/stale_id_filter.rb
300
- - lib/thinking_sphinx/middlewares/utf8.rb
301
315
  - lib/thinking_sphinx/middlewares/valid_options.rb
302
316
  - lib/thinking_sphinx/panes.rb
303
317
  - lib/thinking_sphinx/panes/attributes_pane.rb
@@ -316,6 +330,7 @@ files:
316
330
  - lib/thinking_sphinx/real_time/interpreter.rb
317
331
  - lib/thinking_sphinx/real_time/populator.rb
318
332
  - lib/thinking_sphinx/real_time/property.rb
333
+ - lib/thinking_sphinx/real_time/transcribe_instance.rb
319
334
  - lib/thinking_sphinx/real_time/transcriber.rb
320
335
  - lib/thinking_sphinx/real_time/translator.rb
321
336
  - lib/thinking_sphinx/scopes.rb
@@ -326,8 +341,8 @@ files:
326
341
  - lib/thinking_sphinx/search/merger.rb
327
342
  - lib/thinking_sphinx/search/query.rb
328
343
  - lib/thinking_sphinx/search/stale_ids_exception.rb
344
+ - lib/thinking_sphinx/settings.rb
329
345
  - lib/thinking_sphinx/sinatra.rb
330
- - lib/thinking_sphinx/sphinxql.rb
331
346
  - lib/thinking_sphinx/subscribers/populator_subscriber.rb
332
347
  - lib/thinking_sphinx/tasks.rb
333
348
  - lib/thinking_sphinx/test.rb
@@ -346,6 +361,7 @@ files:
346
361
  - spec/acceptance/grouping_by_attributes_spec.rb
347
362
  - spec/acceptance/index_options_spec.rb
348
363
  - spec/acceptance/indexing_spec.rb
364
+ - spec/acceptance/merging_spec.rb
349
365
  - spec/acceptance/paginating_search_results_spec.rb
350
366
  - spec/acceptance/real_time_updates_spec.rb
351
367
  - spec/acceptance/remove_deleted_records_spec.rb
@@ -407,6 +423,7 @@ files:
407
423
  - spec/spec_helper.rb
408
424
  - spec/support/json_column.rb
409
425
  - spec/support/multi_schema.rb
426
+ - spec/support/mysql.rb
410
427
  - spec/support/sphinx_yaml_helpers.rb
411
428
  - spec/thinking_sphinx/active_record/association_spec.rb
412
429
  - spec/thinking_sphinx/active_record/attribute/type_spec.rb
@@ -429,8 +446,14 @@ files:
429
446
  - spec/thinking_sphinx/active_record/sql_builder_spec.rb
430
447
  - spec/thinking_sphinx/active_record/sql_source_spec.rb
431
448
  - spec/thinking_sphinx/attribute_types_spec.rb
449
+ - spec/thinking_sphinx/commands/clear_real_time_spec.rb
450
+ - spec/thinking_sphinx/commands/clear_sql_spec.rb
432
451
  - spec/thinking_sphinx/commands/configure_spec.rb
433
- - spec/thinking_sphinx/commands/index_spec.rb
452
+ - spec/thinking_sphinx/commands/index_real_time_spec.rb
453
+ - spec/thinking_sphinx/commands/index_sql_spec.rb
454
+ - spec/thinking_sphinx/commands/merge_and_update_spec.rb
455
+ - spec/thinking_sphinx/commands/merge_spec.rb
456
+ - spec/thinking_sphinx/commands/prepare_spec.rb
434
457
  - spec/thinking_sphinx/commands/start_detached_spec.rb
435
458
  - spec/thinking_sphinx/commands/stop_spec.rb
436
459
  - spec/thinking_sphinx/configuration/minimum_fields_spec.rb
@@ -442,6 +465,7 @@ files:
442
465
  - spec/thinking_sphinx/errors_spec.rb
443
466
  - spec/thinking_sphinx/excerpter_spec.rb
444
467
  - spec/thinking_sphinx/facet_search_spec.rb
468
+ - spec/thinking_sphinx/hooks/guard_presence_spec.rb
445
469
  - spec/thinking_sphinx/index_set_spec.rb
446
470
  - spec/thinking_sphinx/index_spec.rb
447
471
  - spec/thinking_sphinx/interfaces/daemon_spec.rb
@@ -450,7 +474,6 @@ files:
450
474
  - spec/thinking_sphinx/masks/pagination_mask_spec.rb
451
475
  - spec/thinking_sphinx/masks/scopes_mask_spec.rb
452
476
  - spec/thinking_sphinx/middlewares/active_record_translator_spec.rb
453
- - spec/thinking_sphinx/middlewares/attribute_typer_spec.rb
454
477
  - spec/thinking_sphinx/middlewares/geographer_spec.rb
455
478
  - spec/thinking_sphinx/middlewares/glazier_spec.rb
456
479
  - spec/thinking_sphinx/middlewares/inquirer_spec.rb
@@ -468,6 +491,9 @@ files:
468
491
  - spec/thinking_sphinx/real_time/field_spec.rb
469
492
  - spec/thinking_sphinx/real_time/index_spec.rb
470
493
  - spec/thinking_sphinx/real_time/interpreter_spec.rb
494
+ - spec/thinking_sphinx/real_time/transcribe_instance_spec.rb
495
+ - spec/thinking_sphinx/real_time/transcriber_spec.rb
496
+ - spec/thinking_sphinx/real_time/translator_spec.rb
471
497
  - spec/thinking_sphinx/scopes_spec.rb
472
498
  - spec/thinking_sphinx/search/glaze_spec.rb
473
499
  - spec/thinking_sphinx/search/query_spec.rb
@@ -495,7 +521,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
495
521
  version: '0'
496
522
  requirements: []
497
523
  rubyforge_project: thinking-sphinx
498
- rubygems_version: 2.6.13
524
+ rubygems_version: 2.4.5.5
499
525
  signing_key:
500
526
  specification_version: 4
501
527
  summary: A smart wrapper over Sphinx for ActiveRecord
@@ -512,6 +538,7 @@ test_files:
512
538
  - spec/acceptance/grouping_by_attributes_spec.rb
513
539
  - spec/acceptance/index_options_spec.rb
514
540
  - spec/acceptance/indexing_spec.rb
541
+ - spec/acceptance/merging_spec.rb
515
542
  - spec/acceptance/paginating_search_results_spec.rb
516
543
  - spec/acceptance/real_time_updates_spec.rb
517
544
  - spec/acceptance/remove_deleted_records_spec.rb
@@ -573,6 +600,7 @@ test_files:
573
600
  - spec/spec_helper.rb
574
601
  - spec/support/json_column.rb
575
602
  - spec/support/multi_schema.rb
603
+ - spec/support/mysql.rb
576
604
  - spec/support/sphinx_yaml_helpers.rb
577
605
  - spec/thinking_sphinx/active_record/association_spec.rb
578
606
  - spec/thinking_sphinx/active_record/attribute/type_spec.rb
@@ -595,8 +623,14 @@ test_files:
595
623
  - spec/thinking_sphinx/active_record/sql_builder_spec.rb
596
624
  - spec/thinking_sphinx/active_record/sql_source_spec.rb
597
625
  - spec/thinking_sphinx/attribute_types_spec.rb
626
+ - spec/thinking_sphinx/commands/clear_real_time_spec.rb
627
+ - spec/thinking_sphinx/commands/clear_sql_spec.rb
598
628
  - spec/thinking_sphinx/commands/configure_spec.rb
599
- - spec/thinking_sphinx/commands/index_spec.rb
629
+ - spec/thinking_sphinx/commands/index_real_time_spec.rb
630
+ - spec/thinking_sphinx/commands/index_sql_spec.rb
631
+ - spec/thinking_sphinx/commands/merge_and_update_spec.rb
632
+ - spec/thinking_sphinx/commands/merge_spec.rb
633
+ - spec/thinking_sphinx/commands/prepare_spec.rb
600
634
  - spec/thinking_sphinx/commands/start_detached_spec.rb
601
635
  - spec/thinking_sphinx/commands/stop_spec.rb
602
636
  - spec/thinking_sphinx/configuration/minimum_fields_spec.rb
@@ -608,6 +642,7 @@ test_files:
608
642
  - spec/thinking_sphinx/errors_spec.rb
609
643
  - spec/thinking_sphinx/excerpter_spec.rb
610
644
  - spec/thinking_sphinx/facet_search_spec.rb
645
+ - spec/thinking_sphinx/hooks/guard_presence_spec.rb
611
646
  - spec/thinking_sphinx/index_set_spec.rb
612
647
  - spec/thinking_sphinx/index_spec.rb
613
648
  - spec/thinking_sphinx/interfaces/daemon_spec.rb
@@ -616,7 +651,6 @@ test_files:
616
651
  - spec/thinking_sphinx/masks/pagination_mask_spec.rb
617
652
  - spec/thinking_sphinx/masks/scopes_mask_spec.rb
618
653
  - spec/thinking_sphinx/middlewares/active_record_translator_spec.rb
619
- - spec/thinking_sphinx/middlewares/attribute_typer_spec.rb
620
654
  - spec/thinking_sphinx/middlewares/geographer_spec.rb
621
655
  - spec/thinking_sphinx/middlewares/glazier_spec.rb
622
656
  - spec/thinking_sphinx/middlewares/inquirer_spec.rb
@@ -634,6 +668,9 @@ test_files:
634
668
  - spec/thinking_sphinx/real_time/field_spec.rb
635
669
  - spec/thinking_sphinx/real_time/index_spec.rb
636
670
  - spec/thinking_sphinx/real_time/interpreter_spec.rb
671
+ - spec/thinking_sphinx/real_time/transcribe_instance_spec.rb
672
+ - spec/thinking_sphinx/real_time/transcriber_spec.rb
673
+ - spec/thinking_sphinx/real_time/translator_spec.rb
637
674
  - spec/thinking_sphinx/scopes_spec.rb
638
675
  - spec/thinking_sphinx/search/glaze_spec.rb
639
676
  - spec/thinking_sphinx/search/query_spec.rb