sunspot 2.0.0.pre.120924 → 2.0.0.pre.120925

Sign up to get free protection for your applications and to get access to all the features.
Files changed (294) hide show
  1. data/.gitignore +11 -9
  2. data/{sunspot/Gemfile → Gemfile} +0 -0
  3. data/{sunspot/History.txt → History.txt} +0 -0
  4. data/{sunspot/LICENSE → LICENSE} +0 -0
  5. data/Rakefile +8 -32
  6. data/{sunspot/TODO → TODO} +0 -0
  7. data/{sunspot/lib → lib}/light_config.rb +0 -0
  8. data/{sunspot/lib → lib}/sunspot.rb +0 -0
  9. data/{sunspot/lib → lib}/sunspot/adapters.rb +0 -0
  10. data/{sunspot/lib → lib}/sunspot/batcher.rb +0 -0
  11. data/{sunspot/lib → lib}/sunspot/class_set.rb +0 -0
  12. data/{sunspot/lib → lib}/sunspot/composite_setup.rb +0 -0
  13. data/{sunspot/lib → lib}/sunspot/configuration.rb +0 -0
  14. data/{sunspot/lib → lib}/sunspot/data_extractor.rb +0 -0
  15. data/{sunspot/lib → lib}/sunspot/dsl.rb +0 -0
  16. data/{sunspot/lib → lib}/sunspot/dsl/adjustable.rb +0 -0
  17. data/{sunspot/lib → lib}/sunspot/dsl/field_group.rb +0 -0
  18. data/{sunspot/lib → lib}/sunspot/dsl/field_query.rb +0 -0
  19. data/{sunspot/lib → lib}/sunspot/dsl/fields.rb +0 -0
  20. data/{sunspot/lib → lib}/sunspot/dsl/fulltext.rb +0 -0
  21. data/{sunspot/lib → lib}/sunspot/dsl/function.rb +0 -0
  22. data/{sunspot/lib → lib}/sunspot/dsl/functional.rb +0 -0
  23. data/{sunspot/lib → lib}/sunspot/dsl/more_like_this_query.rb +0 -0
  24. data/{sunspot/lib → lib}/sunspot/dsl/paginatable.rb +0 -0
  25. data/{sunspot/lib → lib}/sunspot/dsl/query_facet.rb +0 -0
  26. data/{sunspot/lib → lib}/sunspot/dsl/restriction.rb +0 -0
  27. data/{sunspot/lib → lib}/sunspot/dsl/restriction_with_near.rb +0 -0
  28. data/{sunspot/lib → lib}/sunspot/dsl/scope.rb +0 -0
  29. data/{sunspot/lib → lib}/sunspot/dsl/search.rb +0 -0
  30. data/{sunspot/lib → lib}/sunspot/dsl/standard_query.rb +0 -0
  31. data/{sunspot/lib → lib}/sunspot/field.rb +0 -0
  32. data/{sunspot/lib → lib}/sunspot/field_factory.rb +0 -0
  33. data/{sunspot/lib → lib}/sunspot/indexer.rb +0 -0
  34. data/{sunspot/lib → lib}/sunspot/query.rb +0 -0
  35. data/{sunspot/lib → lib}/sunspot/query/abstract_field_facet.rb +0 -0
  36. data/{sunspot/lib → lib}/sunspot/query/bbox.rb +0 -0
  37. data/{sunspot/lib → lib}/sunspot/query/boost_query.rb +0 -0
  38. data/{sunspot/lib → lib}/sunspot/query/common_query.rb +0 -0
  39. data/{sunspot/lib → lib}/sunspot/query/composite_fulltext.rb +0 -0
  40. data/{sunspot/lib → lib}/sunspot/query/connective.rb +0 -0
  41. data/{sunspot/lib → lib}/sunspot/query/date_field_facet.rb +0 -0
  42. data/{sunspot/lib → lib}/sunspot/query/dismax.rb +0 -0
  43. data/{sunspot/lib → lib}/sunspot/query/field_facet.rb +0 -0
  44. data/{sunspot/lib → lib}/sunspot/query/field_group.rb +0 -0
  45. data/{sunspot/lib → lib}/sunspot/query/filter.rb +0 -0
  46. data/{sunspot/lib → lib}/sunspot/query/function_query.rb +0 -0
  47. data/{sunspot/lib → lib}/sunspot/query/geo.rb +0 -0
  48. data/{sunspot/lib → lib}/sunspot/query/geofilt.rb +0 -0
  49. data/{sunspot/lib → lib}/sunspot/query/highlighting.rb +0 -0
  50. data/{sunspot/lib → lib}/sunspot/query/more_like_this.rb +0 -0
  51. data/{sunspot/lib → lib}/sunspot/query/more_like_this_query.rb +0 -0
  52. data/{sunspot/lib → lib}/sunspot/query/pagination.rb +0 -0
  53. data/{sunspot/lib → lib}/sunspot/query/query_facet.rb +0 -0
  54. data/{sunspot/lib → lib}/sunspot/query/range_facet.rb +0 -0
  55. data/{sunspot/lib → lib}/sunspot/query/restriction.rb +0 -0
  56. data/{sunspot/lib → lib}/sunspot/query/scope.rb +0 -0
  57. data/{sunspot/lib → lib}/sunspot/query/sort.rb +0 -0
  58. data/{sunspot/lib → lib}/sunspot/query/sort_composite.rb +0 -0
  59. data/{sunspot/lib → lib}/sunspot/query/standard_query.rb +0 -0
  60. data/{sunspot/lib → lib}/sunspot/query/text_field_boost.rb +0 -0
  61. data/{sunspot/lib → lib}/sunspot/schema.rb +0 -0
  62. data/{sunspot/lib → lib}/sunspot/search.rb +0 -0
  63. data/{sunspot/lib → lib}/sunspot/search/abstract_search.rb +0 -0
  64. data/{sunspot/lib → lib}/sunspot/search/date_facet.rb +0 -0
  65. data/{sunspot/lib → lib}/sunspot/search/facet_row.rb +0 -0
  66. data/{sunspot/lib → lib}/sunspot/search/field_facet.rb +0 -0
  67. data/{sunspot/lib → lib}/sunspot/search/field_group.rb +0 -0
  68. data/{sunspot/lib → lib}/sunspot/search/group.rb +0 -0
  69. data/{sunspot/lib → lib}/sunspot/search/highlight.rb +0 -0
  70. data/{sunspot/lib → lib}/sunspot/search/hit.rb +0 -0
  71. data/{sunspot/lib → lib}/sunspot/search/hit_enumerable.rb +0 -0
  72. data/{sunspot/lib → lib}/sunspot/search/more_like_this_search.rb +0 -0
  73. data/{sunspot/lib → lib}/sunspot/search/paginated_collection.rb +0 -0
  74. data/{sunspot/lib → lib}/sunspot/search/query_facet.rb +0 -0
  75. data/{sunspot/lib → lib}/sunspot/search/range_facet.rb +0 -0
  76. data/{sunspot/lib → lib}/sunspot/search/standard_search.rb +0 -0
  77. data/{sunspot/lib → lib}/sunspot/session.rb +0 -0
  78. data/{sunspot/lib → lib}/sunspot/session_proxy.rb +0 -0
  79. data/{sunspot/lib → lib}/sunspot/session_proxy/abstract_session_proxy.rb +0 -0
  80. data/{sunspot/lib → lib}/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -0
  81. data/{sunspot/lib → lib}/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -0
  82. data/{sunspot/lib → lib}/sunspot/session_proxy/master_slave_session_proxy.rb +0 -0
  83. data/{sunspot/lib → lib}/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -0
  84. data/{sunspot/lib → lib}/sunspot/session_proxy/sharding_session_proxy.rb +0 -0
  85. data/{sunspot/lib → lib}/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -0
  86. data/{sunspot/lib → lib}/sunspot/session_proxy/thread_local_session_proxy.rb +0 -0
  87. data/{sunspot/lib → lib}/sunspot/setup.rb +0 -0
  88. data/{sunspot/lib → lib}/sunspot/text_field_setup.rb +0 -0
  89. data/{sunspot/lib → lib}/sunspot/type.rb +0 -0
  90. data/{sunspot/lib → lib}/sunspot/util.rb +0 -0
  91. data/lib/sunspot/version.rb +3 -0
  92. data/{sunspot/script → script}/console +0 -0
  93. data/{sunspot/spec → spec}/api/adapters_spec.rb +0 -0
  94. data/{sunspot/spec → spec}/api/batcher_spec.rb +0 -0
  95. data/{sunspot/spec → spec}/api/binding_spec.rb +0 -0
  96. data/{sunspot/spec → spec}/api/class_set_spec.rb +0 -0
  97. data/{sunspot/spec → spec}/api/hit_enumerable_spec.rb +0 -0
  98. data/{sunspot/spec → spec}/api/indexer/attributes_spec.rb +0 -0
  99. data/{sunspot/spec → spec}/api/indexer/batch_spec.rb +0 -0
  100. data/{sunspot/spec → spec}/api/indexer/dynamic_fields_spec.rb +0 -0
  101. data/{sunspot/spec → spec}/api/indexer/fixed_fields_spec.rb +0 -0
  102. data/{sunspot/spec → spec}/api/indexer/fulltext_spec.rb +0 -0
  103. data/{sunspot/spec → spec}/api/indexer/removal_spec.rb +0 -0
  104. data/{sunspot/spec → spec}/api/indexer/spec_helper.rb +0 -0
  105. data/{sunspot/spec → spec}/api/indexer_spec.rb +0 -0
  106. data/{sunspot/spec → spec}/api/query/advanced_manipulation_examples.rb +0 -0
  107. data/{sunspot/spec → spec}/api/query/connectives_examples.rb +0 -0
  108. data/{sunspot/spec → spec}/api/query/dsl_spec.rb +0 -0
  109. data/{sunspot/spec → spec}/api/query/dynamic_fields_examples.rb +0 -0
  110. data/{sunspot/spec → spec}/api/query/faceting_examples.rb +0 -0
  111. data/{sunspot/spec → spec}/api/query/fulltext_examples.rb +0 -0
  112. data/{sunspot/spec → spec}/api/query/function_spec.rb +0 -0
  113. data/{sunspot/spec → spec}/api/query/geo_examples.rb +0 -0
  114. data/{sunspot/spec → spec}/api/query/group_spec.rb +0 -0
  115. data/{sunspot/spec → spec}/api/query/highlighting_examples.rb +0 -0
  116. data/{sunspot/spec → spec}/api/query/more_like_this_spec.rb +0 -0
  117. data/{sunspot/spec → spec}/api/query/ordering_pagination_examples.rb +0 -0
  118. data/{sunspot/spec → spec}/api/query/scope_examples.rb +0 -0
  119. data/{sunspot/spec → spec}/api/query/spatial_examples.rb +0 -0
  120. data/{sunspot/spec → spec}/api/query/spec_helper.rb +0 -0
  121. data/{sunspot/spec → spec}/api/query/standard_spec.rb +0 -0
  122. data/{sunspot/spec → spec}/api/query/text_field_scoping_examples.rb +0 -0
  123. data/{sunspot/spec → spec}/api/query/types_spec.rb +0 -0
  124. data/{sunspot/spec → spec}/api/search/dynamic_fields_spec.rb +0 -0
  125. data/{sunspot/spec → spec}/api/search/faceting_spec.rb +0 -0
  126. data/{sunspot/spec → spec}/api/search/highlighting_spec.rb +0 -0
  127. data/{sunspot/spec → spec}/api/search/hits_spec.rb +0 -0
  128. data/{sunspot/spec → spec}/api/search/paginated_collection_spec.rb +0 -0
  129. data/{sunspot/spec → spec}/api/search/results_spec.rb +0 -0
  130. data/{sunspot/spec → spec}/api/search/search_spec.rb +0 -0
  131. data/{sunspot/spec → spec}/api/search/spec_helper.rb +0 -0
  132. data/{sunspot/spec → spec}/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -0
  133. data/{sunspot/spec → spec}/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -0
  134. data/{sunspot/spec → spec}/api/session_proxy/master_slave_session_proxy_spec.rb +0 -0
  135. data/{sunspot/spec → spec}/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -0
  136. data/{sunspot/spec → spec}/api/session_proxy/sharding_session_proxy_spec.rb +0 -0
  137. data/{sunspot/spec → spec}/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -0
  138. data/{sunspot/spec → spec}/api/session_proxy/spec_helper.rb +0 -0
  139. data/{sunspot/spec → spec}/api/session_proxy/thread_local_session_proxy_spec.rb +0 -0
  140. data/{sunspot/spec → spec}/api/session_spec.rb +0 -0
  141. data/{sunspot/spec → spec}/api/spec_helper.rb +0 -0
  142. data/{sunspot/spec → spec}/api/sunspot_spec.rb +0 -0
  143. data/{sunspot/spec → spec}/ext.rb +0 -0
  144. data/{sunspot/spec → spec}/helpers/indexer_helper.rb +0 -0
  145. data/{sunspot/spec → spec}/helpers/integration_helper.rb +0 -0
  146. data/{sunspot/spec → spec}/helpers/mock_session_helper.rb +0 -0
  147. data/{sunspot/spec → spec}/helpers/query_helper.rb +0 -0
  148. data/{sunspot/spec → spec}/helpers/search_helper.rb +0 -0
  149. data/{sunspot/spec → spec}/integration/dynamic_fields_spec.rb +0 -0
  150. data/{sunspot/spec → spec}/integration/faceting_spec.rb +0 -0
  151. data/{sunspot/spec → spec}/integration/field_grouping_spec.rb +0 -0
  152. data/{sunspot/spec → spec}/integration/geospatial_spec.rb +0 -0
  153. data/{sunspot/spec → spec}/integration/highlighting_spec.rb +0 -0
  154. data/{sunspot/spec → spec}/integration/indexing_spec.rb +0 -0
  155. data/{sunspot/spec → spec}/integration/keyword_search_spec.rb +0 -0
  156. data/{sunspot/spec → spec}/integration/local_search_spec.rb +0 -0
  157. data/{sunspot/spec → spec}/integration/more_like_this_spec.rb +0 -0
  158. data/{sunspot/spec → spec}/integration/scoped_search_spec.rb +0 -0
  159. data/{sunspot/spec → spec}/integration/stored_fields_spec.rb +0 -0
  160. data/{sunspot/spec → spec}/integration/test_pagination.rb +0 -0
  161. data/{sunspot/spec → spec}/integration/unicode_spec.rb +0 -0
  162. data/{sunspot/spec → spec}/mocks/adapters.rb +0 -0
  163. data/{sunspot/spec → spec}/mocks/blog.rb +0 -0
  164. data/{sunspot/spec → spec}/mocks/comment.rb +0 -0
  165. data/{sunspot/spec → spec}/mocks/connection.rb +0 -0
  166. data/{sunspot/spec → spec}/mocks/mock_adapter.rb +0 -0
  167. data/{sunspot/spec → spec}/mocks/mock_class_sharding_session_proxy.rb +0 -0
  168. data/{sunspot/spec → spec}/mocks/mock_record.rb +0 -0
  169. data/{sunspot/spec → spec}/mocks/mock_sharding_session_proxy.rb +0 -0
  170. data/{sunspot/spec → spec}/mocks/photo.rb +0 -0
  171. data/{sunspot/spec → spec}/mocks/post.rb +0 -0
  172. data/{sunspot/spec → spec}/mocks/super_class.rb +0 -0
  173. data/{sunspot/spec → spec}/mocks/user.rb +0 -0
  174. data/{sunspot/spec → spec}/spec_helper.rb +0 -0
  175. data/{sunspot/sunspot.gemspec → sunspot.gemspec} +0 -0
  176. data/{sunspot/tasks → tasks}/rdoc.rake +0 -0
  177. data/{sunspot/tasks → tasks}/schema.rake +0 -0
  178. data/{sunspot/tasks → tasks}/todo.rake +0 -0
  179. metadata +271 -304
  180. data/.travis.yml +0 -35
  181. data/README.md +0 -863
  182. data/ci/travis.sh +0 -67
  183. data/sunspot/.gitignore +0 -13
  184. data/sunspot/Rakefile +0 -13
  185. data/sunspot/lib/sunspot/version.rb +0 -3
  186. data/sunspot_rails/.gitignore +0 -7
  187. data/sunspot_rails/.rspec +0 -1
  188. data/sunspot_rails/History.txt +0 -74
  189. data/sunspot_rails/LICENSE +0 -18
  190. data/sunspot_rails/MIT-LICENSE +0 -20
  191. data/sunspot_rails/README.rdoc +0 -265
  192. data/sunspot_rails/Rakefile +0 -17
  193. data/sunspot_rails/TODO +0 -8
  194. data/sunspot_rails/dev_tasks/rdoc.rake +0 -24
  195. data/sunspot_rails/dev_tasks/release.rake +0 -4
  196. data/sunspot_rails/dev_tasks/spec.rake +0 -107
  197. data/sunspot_rails/dev_tasks/todo.rake +0 -4
  198. data/sunspot_rails/gemfiles/rails-2.3.14 +0 -12
  199. data/sunspot_rails/gemfiles/rails-3.0.15 +0 -12
  200. data/sunspot_rails/gemfiles/rails-3.1.6 +0 -12
  201. data/sunspot_rails/gemfiles/rails-3.2.6 +0 -12
  202. data/sunspot_rails/generators/sunspot/sunspot_generator.rb +0 -9
  203. data/sunspot_rails/generators/sunspot/templates/sunspot.yml +0 -20
  204. data/sunspot_rails/install.rb +0 -1
  205. data/sunspot_rails/lib/generators/sunspot_rails.rb +0 -9
  206. data/sunspot_rails/lib/generators/sunspot_rails/install/install_generator.rb +0 -13
  207. data/sunspot_rails/lib/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -19
  208. data/sunspot_rails/lib/sunspot/rails.rb +0 -69
  209. data/sunspot_rails/lib/sunspot/rails/adapters.rb +0 -88
  210. data/sunspot_rails/lib/sunspot/rails/configuration.rb +0 -352
  211. data/sunspot_rails/lib/sunspot/rails/init.rb +0 -5
  212. data/sunspot_rails/lib/sunspot/rails/log_subscriber.rb +0 -45
  213. data/sunspot_rails/lib/sunspot/rails/railtie.rb +0 -41
  214. data/sunspot_rails/lib/sunspot/rails/railties/controller_runtime.rb +0 -36
  215. data/sunspot_rails/lib/sunspot/rails/request_lifecycle.rb +0 -36
  216. data/sunspot_rails/lib/sunspot/rails/searchable.rb +0 -495
  217. data/sunspot_rails/lib/sunspot/rails/server.rb +0 -106
  218. data/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb +0 -19
  219. data/sunspot_rails/lib/sunspot/rails/solr_logging.rb +0 -62
  220. data/sunspot_rails/lib/sunspot/rails/spec_helper.rb +0 -26
  221. data/sunspot_rails/lib/sunspot/rails/stub_session_proxy.rb +0 -146
  222. data/sunspot_rails/lib/sunspot/rails/tasks.rb +0 -94
  223. data/sunspot_rails/lib/sunspot_rails.rb +0 -12
  224. data/sunspot_rails/spec/configuration_spec.rb +0 -209
  225. data/sunspot_rails/spec/model_lifecycle_spec.rb +0 -63
  226. data/sunspot_rails/spec/model_spec.rb +0 -601
  227. data/sunspot_rails/spec/rails_template/app/controllers/application_controller.rb +0 -10
  228. data/sunspot_rails/spec/rails_template/app/controllers/posts_controller.rb +0 -6
  229. data/sunspot_rails/spec/rails_template/app/models/author.rb +0 -10
  230. data/sunspot_rails/spec/rails_template/app/models/blog.rb +0 -14
  231. data/sunspot_rails/spec/rails_template/app/models/location.rb +0 -3
  232. data/sunspot_rails/spec/rails_template/app/models/photo_post.rb +0 -2
  233. data/sunspot_rails/spec/rails_template/app/models/post.rb +0 -13
  234. data/sunspot_rails/spec/rails_template/app/models/post_with_auto.rb +0 -12
  235. data/sunspot_rails/spec/rails_template/app/models/post_with_default_scope.rb +0 -13
  236. data/sunspot_rails/spec/rails_template/config/boot.rb +0 -127
  237. data/sunspot_rails/spec/rails_template/config/preinitializer.rb +0 -22
  238. data/sunspot_rails/spec/rails_template/config/routes.rb +0 -9
  239. data/sunspot_rails/spec/rails_template/config/sunspot.yml +0 -24
  240. data/sunspot_rails/spec/rails_template/db/schema.rb +0 -27
  241. data/sunspot_rails/spec/request_lifecycle_spec.rb +0 -61
  242. data/sunspot_rails/spec/schema.rb +0 -27
  243. data/sunspot_rails/spec/searchable_spec.rb +0 -12
  244. data/sunspot_rails/spec/server_spec.rb +0 -33
  245. data/sunspot_rails/spec/session_spec.rb +0 -57
  246. data/sunspot_rails/spec/shared_examples/indexed_after_save.rb +0 -8
  247. data/sunspot_rails/spec/shared_examples/not_indexed_after_save.rb +0 -8
  248. data/sunspot_rails/spec/spec_helper.rb +0 -48
  249. data/sunspot_rails/spec/stub_session_proxy_spec.rb +0 -122
  250. data/sunspot_rails/sunspot_rails.gemspec +0 -43
  251. data/sunspot_solr/Gemfile +0 -3
  252. data/sunspot_solr/README.rdoc +0 -24
  253. data/sunspot_solr/bin/sunspot-installer +0 -20
  254. data/sunspot_solr/bin/sunspot-solr +0 -80
  255. data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
  256. data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
  257. data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
  258. data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
  259. data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
  260. data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
  261. data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
  262. data/sunspot_solr/lib/sunspot_solr.rb +0 -5
  263. data/sunspot_solr/solr/README.txt +0 -42
  264. data/sunspot_solr/solr/etc/jetty.xml +0 -219
  265. data/sunspot_solr/solr/etc/webdefault.xml +0 -379
  266. data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
  267. data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
  268. data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  269. data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  270. data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  271. data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  272. data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
  273. data/sunspot_solr/solr/solr/.gitignore +0 -1
  274. data/sunspot_solr/solr/solr/README.txt +0 -54
  275. data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
  276. data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
  277. data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  278. data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
  279. data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
  280. data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
  281. data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
  282. data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
  283. data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
  284. data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
  285. data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
  286. data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
  287. data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
  288. data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
  289. data/sunspot_solr/solr/start.jar +0 -0
  290. data/sunspot_solr/solr/webapps/solr.war +0 -0
  291. data/sunspot_solr/spec/server_spec.rb +0 -98
  292. data/sunspot_solr/spec/spec_helper.rb +0 -18
  293. data/sunspot_solr/sunspot_solr.gemspec +0 -37
  294. data/tools/gem_tasks.rb +0 -69
@@ -1,12 +0,0 @@
1
- # This needs to be loaded before sunspot/search/paginated_collection
2
- # or #to_json gets defined in Object breaking delegation to Array via
3
- # method_missing
4
- require 'active_support/core_ext/object/to_json' if Rails::VERSION::MAJOR == 3
5
-
6
- require 'sunspot/rails'
7
-
8
- if Rails::VERSION::MAJOR == 3
9
- require 'sunspot/rails/railtie'
10
- else
11
- require 'sunspot/rails/init'
12
- end
@@ -1,209 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" do
4
- before(:each) do
5
- File.stub!(:exist?).and_return(false) # simulate sunspot.yml not existing
6
- @config = Sunspot::Rails::Configuration.new
7
- end
8
-
9
- it "should handle the 'hostname' property when not set" do
10
- @config.hostname.should == 'localhost'
11
- end
12
-
13
- it "should handle the 'path' property when not set" do
14
- @config.path.should == '/solr'
15
- end
16
-
17
- describe "port" do
18
- it "should default to port 8981 in test" do
19
- ::Rails.stub!(:env => 'test')
20
- @config = Sunspot::Rails::Configuration.new
21
- @config.port.should == 8981
22
- end
23
- it "should default to port 8982 in development" do
24
- ::Rails.stub!(:env => 'development')
25
- @config = Sunspot::Rails::Configuration.new
26
- @config.port.should == 8982
27
- end
28
- it "should default to 8983 in production" do
29
- ::Rails.stub!(:env => 'production')
30
- @config = Sunspot::Rails::Configuration.new
31
- @config.port.should == 8983
32
- end
33
- it "should generally default to 8983" do
34
- ::Rails.stub!(:env => 'staging')
35
- @config = Sunspot::Rails::Configuration.new
36
- @config.port.should == 8983
37
- end
38
- end
39
-
40
- it "should set the read timeout to nil when not set" do
41
- @config.read_timeout == nil
42
- end
43
-
44
- it "should set the open timeout to nil when not set" do
45
- @config.open_timeout == nil
46
- end
47
-
48
- it "should handle the 'log_level' property when not set" do
49
- @config.log_level.should == 'INFO'
50
- end
51
-
52
- it "should handle the 'log_file' property" do
53
- @config.log_file.should =~ /log\/solr_test.log/
54
- end
55
-
56
- it "should handle the 'solr_home' property when not set" do
57
- Rails.should_receive(:root).at_least(1).and_return('/some/path')
58
- @config.solr_home.should == '/some/path/solr'
59
- end
60
-
61
- it "should handle the 'data_path' property when not set" do
62
- Rails.should_receive(:root).at_least(1).and_return('/some/path')
63
- @config.data_path.should == '/some/path/solr/data/test'
64
- end
65
-
66
- it "should handle the 'pid_dir' property when not set" do
67
- Rails.should_receive(:root).at_least(1).and_return('/some/path')
68
- @config.pid_dir.should == '/some/path/solr/pids/test'
69
- end
70
-
71
- it "should handle the 'auto_commit_after_request' propery when not set" do
72
- @config.auto_commit_after_request?.should == true
73
- end
74
-
75
- it "should handle the 'auto_commit_after_delete_request' propery when not set" do
76
- @config.auto_commit_after_delete_request?.should == false
77
- end
78
-
79
- it "should handle the 'bind_address' property when not set" do
80
- @config.bind_address.should be_nil
81
- end
82
-
83
- it "should handle the 'disabled' property when not set" do
84
- @config.disabled?.should be_false
85
- end
86
- end
87
-
88
- describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
89
- before(:each) do
90
- ::Rails.stub!(:env => 'config_test')
91
- @config = Sunspot::Rails::Configuration.new
92
- end
93
-
94
- it "should handle the 'hostname' property when set" do
95
- @config.hostname.should == 'some.host'
96
- end
97
-
98
- it "should handle the 'port' property when set" do
99
- @config.port.should == 1234
100
- end
101
-
102
- it "should handle the 'path' property when set" do
103
- @config.path.should == '/solr/idx'
104
- end
105
-
106
- it "should handle the 'log_level' propery when set" do
107
- @config.log_level.should == 'WARNING'
108
- end
109
-
110
- it "should handle the 'solr_home' propery when set" do
111
- @config.solr_home.should == '/my_superior_path'
112
- end
113
-
114
- it "should handle the 'data_path' property when set" do
115
- @config.data_path.should == '/my_superior_path/data'
116
- end
117
-
118
- it "should handle the 'pid_dir' property when set" do
119
- @config.pid_dir.should == '/my_superior_path/pids'
120
- end
121
-
122
- it "should handle the 'solr_home' property when set" do
123
- @config.solr_home.should == '/my_superior_path'
124
- end
125
-
126
- it "should handle the 'auto_commit_after_request' propery when set" do
127
- @config.auto_commit_after_request?.should == false
128
- end
129
-
130
- it "should handle the 'auto_commit_after_delete_request' propery when set" do
131
- @config.auto_commit_after_delete_request?.should == true
132
- end
133
-
134
- it "should handle the 'bind_address' property when set" do
135
- @config.bind_address.should == "127.0.0.1"
136
- end
137
- it "should handle the 'read_timeout' property when set" do
138
- @config.read_timeout.should == 2
139
- end
140
- it "should handle the 'open_timeout' property when set" do
141
- @config.open_timeout.should == 0.5
142
- end
143
- end
144
-
145
- describe Sunspot::Rails::Configuration, "with disabled: true in sunspot.yml" do
146
- before(:each) do
147
- ::Rails.stub!(:env => 'config_disabled_test')
148
- @config = Sunspot::Rails::Configuration.new
149
- end
150
-
151
- it "should handle the 'disabled' property when set" do
152
- @config.disabled?.should be_true
153
- end
154
- end
155
-
156
- describe Sunspot::Rails::Configuration, "with ENV['SOLR_URL'] overriding sunspot.yml" do
157
- before(:all) do
158
- ENV['SOLR_URL'] = 'http://environment.host:5432/solr/env'
159
- end
160
-
161
- before(:each) do
162
- ::Rails.stub!(:env => 'config_test')
163
- @config = Sunspot::Rails::Configuration.new
164
- end
165
-
166
- after(:all) do
167
- ENV.delete('SOLR_URL')
168
- end
169
-
170
- it "should handle the 'hostname' property when set" do
171
- @config.hostname.should == 'environment.host'
172
- end
173
-
174
- it "should handle the 'port' property when set" do
175
- @config.port.should == 5432
176
- end
177
-
178
- it "should handle the 'path' property when set" do
179
- @config.path.should == '/solr/env'
180
- end
181
- end
182
-
183
- describe Sunspot::Rails::Configuration, "with ENV['WEBSOLR_URL'] overriding sunspot.yml" do
184
- before(:all) do
185
- ENV['WEBSOLR_URL'] = 'http://index.websolr.test/solr/a1b2c3d4e5f'
186
- end
187
-
188
- before(:each) do
189
- ::Rails.stub!(:env => 'config_test')
190
- @config = Sunspot::Rails::Configuration.new
191
- end
192
-
193
- after(:all) do
194
- ENV.delete('WEBSOLR_URL')
195
- end
196
-
197
- it "should handle the 'hostname' property when set" do
198
- @config.hostname.should == 'index.websolr.test'
199
- end
200
-
201
- it "should handle the 'port' property when set" do
202
- @config.port.should == 80
203
- end
204
-
205
- it "should handle the 'path' property when set" do
206
- @config.path.should == '/solr/a1b2c3d4e5f'
207
- end
208
- end
209
-
@@ -1,63 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'searchable with lifecycle' do
4
- describe 'on create' do
5
- before :each do
6
- @post = PostWithAuto.create
7
- Sunspot.commit
8
- end
9
-
10
- it 'should automatically index' do
11
- PostWithAuto.search.results.should == [@post]
12
- end
13
- end
14
-
15
- describe 'on update' do
16
- before :each do
17
- @post = PostWithAuto.create
18
- @post.update_attributes(:title => 'Test 1')
19
- Sunspot.commit
20
- end
21
-
22
- it 'should automatically update index' do
23
- PostWithAuto.search { with :title, 'Test 1' }.results.should == [@post]
24
- end
25
-
26
- it "should index model if relevant attribute changed" do
27
- @post = PostWithAuto.create!
28
- @post.title = 'new title'
29
- @post.should_receive :solr_index
30
- @post.save!
31
- end
32
-
33
- it "should not index model if relevant attribute not changed" do
34
- @post = PostWithAuto.create!
35
- @post.updated_at = Date.tomorrow
36
- @post.should_not_receive :solr_index
37
- @post.save!
38
- end
39
- end
40
-
41
- describe 'on destroy' do
42
- before :each do
43
- @post = PostWithAuto.create
44
- @post.destroy
45
- Sunspot.commit
46
- end
47
-
48
- it 'should automatically remove it from the index' do
49
- PostWithAuto.search_ids.should be_empty
50
- end
51
- end
52
- end
53
-
54
- describe 'searchable with lifecycle - ignoring specific attributes' do
55
- before(:each) do
56
- @post = PostWithAuto.create
57
- end
58
-
59
- it "should not reindex the object on an update_at change, because it is marked as to-ignore" do
60
- Sunspot.should_not_receive(:index).with(@post)
61
- @post.update_attribute :updated_at, 123.seconds.from_now
62
- end
63
- end
@@ -1,601 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'ActiveRecord mixin' do
4
- describe 'index()' do
5
- before :each do
6
- @post = Post.create!
7
- @post.index
8
- end
9
-
10
- it 'should not commit the model' do
11
- Post.search.results.should be_empty
12
- end
13
-
14
- it 'should index the model' do
15
- Sunspot.commit
16
- Post.search.results.should == [@post]
17
- end
18
-
19
- it "should not blow up if there's a default scope specifying order" do
20
- posts = Array.new(2) { |j| PostWithDefaultScope.create! :title => (10-j).to_s }
21
- lambda { PostWithDefaultScope.index(:batch_size => 1) }.should_not raise_error
22
- end
23
- end
24
-
25
- describe 'single table inheritence' do
26
- before :each do
27
- @post = PhotoPost.create!
28
- end
29
-
30
- it 'should not break auto-indexing' do
31
- @post.title = 'Title'
32
- lambda { @post.save! }.should_not raise_error
33
- end
34
- end
35
-
36
- describe 'index!()' do
37
- before :each do
38
- @post = Post.create!
39
- @post.index!
40
- end
41
-
42
- it 'should immediately index and commit' do
43
- Post.search.results.should == [@post]
44
- end
45
- end
46
-
47
- describe 'remove_from_index()' do
48
- before :each do
49
- @post = Post.create!
50
- @post.index!
51
- @post.remove_from_index
52
- end
53
-
54
- it 'should not commit immediately' do
55
- Post.search.results.should == [@post]
56
- end
57
-
58
- it 'should remove the model from the index' do
59
- Sunspot.commit
60
- Post.search.results.should be_empty
61
- end
62
- end
63
-
64
- describe 'remove_from_index!()' do
65
- before :each do
66
- @post = Post.create!
67
- @post.index!
68
- @post.remove_from_index!
69
- end
70
-
71
- it 'should immediately remove the model and commit' do
72
- Post.search.results.should be_empty
73
- end
74
- end
75
-
76
- describe 'remove_all_from_index' do
77
- before :each do
78
- @posts = Array.new(2) { Post.create! }.each { |post| Sunspot.index(post) }
79
- Sunspot.commit
80
- Post.remove_all_from_index
81
- end
82
-
83
- it 'should not commit immediately' do
84
- Post.search.results.to_set.should == @posts.to_set
85
- end
86
-
87
- it 'should remove all instances from the index' do
88
- Sunspot.commit
89
- Post.search.results.should be_empty
90
- end
91
- end
92
-
93
- describe 'remove_all_from_index!' do
94
- before :each do
95
- Array.new(2) { Post.create! }.each { |post| Sunspot.index(post) }
96
- Sunspot.commit
97
- Post.remove_all_from_index!
98
- end
99
-
100
- it 'should remove all instances from the index and commit immediately' do
101
- Post.search.results.should be_empty
102
- end
103
- end
104
-
105
- describe 'search()' do
106
- before :each do
107
- @post = Post.create!(:title => 'Test Post')
108
- @post.index!
109
- end
110
-
111
- it 'should return results specified by search' do
112
- Post.search do
113
- with :title, 'Test Post'
114
- end.results.should == [@post]
115
- end
116
-
117
- it 'should not return results excluded by search' do
118
- Post.search do
119
- with :title, 'Bogus Post'
120
- end.results.should be_empty
121
- end
122
-
123
- it 'should use the include option on the data accessor when specified' do
124
- Post.should_receive(:all).with(hash_including(:include => [:blog])).and_return([@post])
125
- Post.search do
126
- with :title, 'Test Post'
127
- data_accessor_for(Post).include = [:blog]
128
- end.results.should == [@post]
129
- end
130
-
131
- it 'should pass :include option from search call to data accessor' do
132
- Post.should_receive(:all).with(hash_including(:include => [:blog])).and_return([@post])
133
- Post.search(:include => [:blog]) do
134
- with :title, 'Test Post'
135
- end.results.should == [@post]
136
- end
137
-
138
- it 'should use the select option from search call to data accessor' do
139
- Post.should_receive(:all).with(hash_including(:select => 'title, published_at')).and_return([@post])
140
- Post.search(:select => 'title, published_at') do
141
- with :title, 'Test Post'
142
- end.results.should == [@post]
143
- end
144
-
145
- it 'should not allow bogus options to search' do
146
- lambda { Post.search(:bogus => :option) }.should raise_error(ArgumentError)
147
- end
148
-
149
- it 'should use the select option on the data accessor when specified' do
150
- Post.should_receive(:all).with(hash_including(:select => 'title, published_at')).and_return([@post])
151
- Post.search do
152
- with :title, 'Test Post'
153
- data_accessor_for(Post).select = [:title, :published_at]
154
- end.results.should == [@post]
155
- end
156
-
157
- it 'should not use the select option on the data accessor when not specified' do
158
- Post.should_receive(:all).with(hash_not_including(:select)).and_return([@post])
159
- Post.search do
160
- with :title, 'Test Post'
161
- end.results.should == [@post]
162
- end
163
-
164
- it 'should gracefully handle nonexistent records' do
165
- post2 = Post.create!(:title => 'Test Post')
166
- post2.index!
167
- post2.destroy
168
- Post.search do
169
- with :title, 'Test Post'
170
- end.results.should == [@post]
171
- end
172
-
173
- it 'should use an ActiveRecord object for coordinates' do
174
- post = Post.new(:title => 'Test Post')
175
- post.location = Location.create!(:lat => 40.0, :lng => -70.0)
176
- post.save
177
- post.index!
178
- Post.search { with(:location).near(40.0, -70.0) }.results.should == [post]
179
- end
180
-
181
- end
182
-
183
- describe 'search_ids()' do
184
- before :each do
185
- @posts = Array.new(2) { Post.create! }.each { |post| post.index }
186
- Sunspot.commit
187
- end
188
-
189
- it 'should return IDs' do
190
- Post.search_ids.to_set.should == @posts.map { |post| post.id }.to_set
191
- end
192
- end
193
-
194
- describe 'searchable?()' do
195
- it 'should not be true for models that have not been configured for search' do
196
- Location.should_not be_searchable
197
- end
198
-
199
- it 'should be true for models that have been configured for search' do
200
- Post.should be_searchable
201
- end
202
- end
203
-
204
- describe 'index_orphans()' do
205
- before :each do
206
- @posts = Array.new(2) { Post.create }.each { |post| post.index }
207
- Sunspot.commit
208
- @posts.first.destroy
209
- end
210
-
211
- it 'should return IDs of objects that are in the index but not the database' do
212
- Post.index_orphans.should == [@posts.first.id]
213
- end
214
-
215
- it 'should find the orphans in batches to improve performance' do
216
- Post.should_receive(:find_each).with(hash_including(:batch_size => 10)).and_return([])
217
- Post.index_orphans(:batch_size => 10)
218
- end
219
-
220
- end
221
-
222
- describe 'clean_index_orphans()' do
223
- before :each do
224
- @posts = Array.new(2) { Post.create }.each { |post| post.index }
225
- Sunspot.commit
226
- @posts.first.destroy
227
- end
228
-
229
- it 'should remove orphans from the index' do
230
- Post.clean_index_orphans
231
- Sunspot.commit
232
- Post.search.results.should == [@posts.last]
233
- end
234
- end
235
-
236
- describe 'reindex()' do
237
- before :each do
238
- @posts = Array.new(2) { Post.create }
239
- end
240
-
241
- it 'should index all instances' do
242
- Post.reindex(:batch_size => nil)
243
- Sunspot.commit
244
- Post.search.results.to_set.should == @posts.to_set
245
- end
246
-
247
- it 'should remove all currently indexed instances' do
248
- old_post = Post.create!
249
- old_post.index!
250
- old_post.destroy
251
- Post.reindex
252
- Sunspot.commit
253
- Post.search.results.to_set.should == @posts.to_set
254
- end
255
-
256
- end
257
-
258
- describe 'reindex() with real data' do
259
- before :each do
260
- @posts = Array.new(2) { Post.create }
261
- end
262
-
263
- it 'should index all instances' do
264
- Post.reindex(:batch_size => nil)
265
- Sunspot.commit
266
- Post.search.results.to_set.should == @posts.to_set
267
- end
268
-
269
- it 'should remove all currently indexed instances' do
270
- old_post = Post.create!
271
- old_post.index!
272
- old_post.destroy
273
- Post.reindex
274
- Sunspot.commit
275
- Post.search.results.to_set.should == @posts.to_set
276
- end
277
-
278
- describe "using batch sizes" do
279
- it 'should index with a specified batch size' do
280
- Post.reindex(:batch_size => 1)
281
- Sunspot.commit
282
- Post.search.results.to_set.should == @posts.to_set
283
- end
284
- end
285
- end
286
-
287
-
288
-
289
- describe "reindex()" do
290
-
291
- before(:each) do
292
- @posts = Array.new(2) { Post.create }
293
- end
294
-
295
- describe "when not using batches" do
296
-
297
- it "should select all if the batch_size is nil" do
298
- Post.should_receive(:all).with(:include => []).and_return([])
299
- Post.reindex(:batch_size => nil)
300
- end
301
-
302
- it "should search for models with includes" do
303
- Post.should_receive(:all).with(:include => :author).and_return([])
304
- Post.reindex(:batch_size => nil, :include => :author)
305
- end
306
-
307
- describe ':if constraints' do
308
- before do
309
- Post.sunspot_options[:if] = proc { |model| model.id != @posts.first.id }
310
- end
311
-
312
- after do
313
- Post.sunspot_options[:if] = nil
314
- end
315
-
316
- it 'should only index those models where :if constraints pass' do
317
- Post.reindex(:batch_size => nil)
318
-
319
- Post.search.results.should_not include(@posts.first)
320
- end
321
- end
322
-
323
- end
324
-
325
- describe "when using batches" do
326
- it "should commit after indexing each batch" do
327
- Sunspot.should_receive(:commit).twice
328
- Post.reindex(:batch_size => 1)
329
- end
330
-
331
- it "should commit after indexing everything" do
332
- Sunspot.should_receive(:commit).once
333
- Post.reindex(:batch_commit => false)
334
- end
335
-
336
- describe ':if constraints' do
337
- before do
338
- Post.sunspot_options[:if] = proc { |model| model.id != @posts.first.id }
339
- end
340
-
341
- after do
342
- Post.sunspot_options[:if] = nil
343
- end
344
-
345
- it 'should only index those models where :if constraints pass' do
346
- Post.reindex(:batch_size => 50)
347
-
348
- Post.search.results.should_not include(@posts.first)
349
- end
350
- end
351
- end
352
- end
353
-
354
- describe "more_like_this()" do
355
- before(:each) do
356
- @posts = [
357
- Post.create!(:title => 'Post123', :body => "one two three"),
358
- Post.create!(:title => 'Post345', :body => "three four five"),
359
- Post.create!(:title => 'Post456', :body => "four five six"),
360
- Post.create!(:title => 'Post234', :body => "two three four"),
361
- ]
362
- @posts_with_auto = [
363
- PostWithAuto.create!(:body => "one two three"),
364
- PostWithAuto.create!(:body => "four five six")
365
- ]
366
- @posts.each { |p| p.index! }
367
- end
368
-
369
- it "should return results" do
370
- @posts.first.more_like_this.results.should == [@posts[3], @posts[1]]
371
- end
372
-
373
- it "should return results for specified classes" do
374
- @posts.first.more_like_this(Post, PostWithAuto).results.to_set.should ==
375
- Set[@posts_with_auto[0], @posts[1], @posts[3]]
376
- end
377
- end
378
-
379
- describe 'more_like_this_ids()' do
380
- before :each do
381
- @posts = [
382
- Post.create!(:title => 'Post123', :body => "one two three"),
383
- Post.create!(:title => 'Post345', :body => "three four five"),
384
- Post.create!(:title => 'Post456', :body => "four five six"),
385
- Post.create!(:title => 'Post234', :body => "two three four"),
386
- ]
387
- @posts.each { |p| p.index! }
388
- end
389
-
390
- it 'should return IDs' do
391
- @posts.first.more_like_this_ids.to_set.should == [@posts[3], @posts[1]].map { |post| post.id }.to_set
392
- end
393
- end
394
-
395
- describe ':if constraint' do
396
- subject do
397
- PostWithAuto.new(:title => 'Post123')
398
- end
399
-
400
- after do
401
- subject.class.sunspot_options[:if] = nil
402
- end
403
-
404
- context 'Symbol' do
405
- context 'constraint returns true' do
406
- # searchable :if => :returns_true
407
- before do
408
- subject.should_receive(:returns_true).and_return(true)
409
- subject.class.sunspot_options[:if] = :returns_true
410
- end
411
-
412
- it_should_behave_like 'indexed after save'
413
- end
414
-
415
- context 'constraint returns false' do
416
- # searchable :if => :returns_false
417
- before do
418
- subject.should_receive(:returns_false).and_return(false)
419
- subject.class.sunspot_options[:if] = :returns_false
420
- end
421
-
422
- it_should_behave_like 'not indexed after save'
423
- end
424
- end
425
-
426
- context 'String' do
427
- context 'constraint returns true' do
428
- # searchable :if => 'returns_true'
429
- before do
430
- subject.should_receive(:returns_true).and_return(true)
431
- subject.class.sunspot_options[:if] = 'returns_true'
432
- end
433
-
434
- it_should_behave_like 'indexed after save'
435
- end
436
-
437
- context 'constraint returns false' do
438
- # searchable :if => 'returns_false'
439
- before do
440
- subject.should_receive(:returns_false).and_return(false)
441
- subject.class.sunspot_options[:if] = 'returns_false'
442
- end
443
-
444
- it_should_behave_like 'not indexed after save'
445
- end
446
- end
447
-
448
- context 'Proc' do
449
- context 'constraint returns true' do
450
- # searchable :if => proc { true }
451
- before do
452
- subject.class.sunspot_options[:if] = proc { true }
453
- end
454
-
455
- it_should_behave_like 'indexed after save'
456
- end
457
-
458
- context 'constraint returns false' do
459
- # searchable :if => proc { false }
460
- before do
461
- subject.class.sunspot_options[:if] = proc { false }
462
- end
463
-
464
- it_should_behave_like 'not indexed after save'
465
- end
466
- end
467
-
468
- context 'Array' do
469
- context 'all constraints returns true' do
470
- # searchable :if => [:returns_true_1, :returns_true_2]
471
- before do
472
- subject.should_receive(:returns_true_1).and_return(true)
473
- subject.should_receive(:returns_true_2).and_return(true)
474
- subject.class.sunspot_options[:if] = [:returns_true_1, 'returns_true_2']
475
- end
476
-
477
- it_should_behave_like 'indexed after save'
478
- end
479
-
480
- context 'one constraint returns false' do
481
- # searchable :if => [:returns_true, :returns_false]
482
- before do
483
- subject.should_receive(:returns_true).and_return(true)
484
- subject.should_receive(:returns_false).and_return(false)
485
- subject.class.sunspot_options[:if] = [:returns_true, 'returns_false']
486
- end
487
-
488
- it_should_behave_like 'not indexed after save'
489
- end
490
- end
491
-
492
- it 'removes the model from the index if the constraint does not match' do
493
- subject.save!
494
- Sunspot.commit
495
- subject.class.search.results.should include(subject)
496
-
497
- subject.class.sunspot_options[:if] = proc { false }
498
- subject.save!
499
- Sunspot.commit
500
- subject.class.search.results.should_not include(subject)
501
- end
502
- end
503
-
504
- describe ':unless constraint' do
505
- subject do
506
- PostWithAuto.new(:title => 'Post123')
507
- end
508
-
509
- after do
510
- subject.class.sunspot_options[:unless] = nil
511
- end
512
-
513
- context 'Symbol' do
514
- context 'constraint returns true' do
515
- # searchable :unless => :returns_true
516
- before do
517
- subject.should_receive(:returns_true).and_return(true)
518
- subject.class.sunspot_options[:unless] = :returns_true
519
- end
520
-
521
- it_should_behave_like 'not indexed after save'
522
- end
523
-
524
- context 'constraint returns false' do
525
- # searchable :unless => :returns_false
526
- before do
527
- subject.should_receive(:returns_false).and_return(false)
528
- subject.class.sunspot_options[:unless] = :returns_false
529
- end
530
-
531
- it_should_behave_like 'indexed after save'
532
- end
533
- end
534
-
535
- context 'String' do
536
- context 'constraint returns true' do
537
- # searchable :unless => 'returns_true'
538
- before do
539
- subject.should_receive(:returns_true).and_return(true)
540
- subject.class.sunspot_options[:unless] = 'returns_true'
541
- end
542
-
543
- it_should_behave_like 'not indexed after save'
544
- end
545
-
546
- context 'constraint returns false' do
547
- # searchable :unless => 'returns_false'
548
- before do
549
- subject.should_receive(:returns_false).and_return(false)
550
- subject.class.sunspot_options[:unless] = 'returns_false'
551
- end
552
-
553
- it_should_behave_like 'indexed after save'
554
- end
555
- end
556
-
557
- context 'Proc' do
558
- context 'constraint returns true' do
559
- # searchable :unless => proc { true }
560
- before do
561
- subject.class.sunspot_options[:unless] = proc { |model| model == subject } # true
562
- end
563
-
564
- it_should_behave_like 'not indexed after save'
565
- end
566
-
567
- context 'constraint returns false' do
568
- # searchable :unless => proc { false }
569
- before do
570
- subject.class.sunspot_options[:unless] = proc { false }
571
- end
572
-
573
- it_should_behave_like 'indexed after save'
574
- end
575
- end
576
-
577
- context 'Array' do
578
- context 'all constraints returns true' do
579
- # searchable :unless => [:returns_true_1, :returns_true_2]
580
- before do
581
- subject.should_receive(:returns_true_1).and_return(true)
582
- subject.should_receive(:returns_true_2).and_return(true)
583
- subject.class.sunspot_options[:unless] = [:returns_true_1, 'returns_true_2']
584
- end
585
-
586
- it_should_behave_like 'not indexed after save'
587
- end
588
-
589
- context 'one constraint returns false' do
590
- # searchable :unless => [:returns_true, :returns_false]
591
- before do
592
- subject.should_receive(:returns_true).and_return(true)
593
- subject.should_receive(:returns_false).and_return(false)
594
- subject.class.sunspot_options[:unless] = [:returns_true, 'returns_false']
595
- end
596
-
597
- it_should_behave_like 'indexed after save'
598
- end
599
- end
600
- end
601
- end