thinking-sphinx 3.4.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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