sunspot_rails 2.0.0.pre.120924 → 2.0.0.pre.120925

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 (293) hide show
  1. data/.gitignore +6 -10
  2. data/{sunspot_rails/.rspec → .rspec} +0 -0
  3. data/{sunspot_rails/History.txt → History.txt} +0 -0
  4. data/{sunspot/LICENSE → LICENSE} +0 -0
  5. data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
  6. data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
  7. data/Rakefile +12 -32
  8. data/{sunspot_rails/TODO → TODO} +0 -0
  9. data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
  10. data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
  11. data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
  12. data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
  13. data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
  14. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
  15. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
  16. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
  17. data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
  18. data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
  19. data/{sunspot_rails/install.rb → install.rb} +0 -0
  20. data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
  21. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
  22. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
  23. data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
  24. data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
  25. data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
  26. data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
  27. data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
  28. data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
  29. data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
  30. data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
  31. data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
  32. data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
  33. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
  34. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
  35. data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
  36. data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
  37. data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
  38. data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
  39. data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
  40. data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
  41. data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
  42. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
  43. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
  44. data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
  45. data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
  46. data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
  47. data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
  48. data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
  49. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
  50. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
  51. data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
  52. data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
  53. data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
  54. data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
  55. data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
  56. data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
  57. data/{sunspot_rails/spec → spec}/schema.rb +0 -0
  58. data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
  59. data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
  60. data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
  61. data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
  62. data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
  63. data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
  64. data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
  65. data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
  66. metadata +102 -305
  67. data/.travis.yml +0 -35
  68. data/README.md +0 -863
  69. data/ci/travis.sh +0 -67
  70. data/sunspot/.gitignore +0 -13
  71. data/sunspot/Gemfile +0 -5
  72. data/sunspot/History.txt +0 -258
  73. data/sunspot/Rakefile +0 -13
  74. data/sunspot/TODO +0 -13
  75. data/sunspot/lib/light_config.rb +0 -40
  76. data/sunspot/lib/sunspot.rb +0 -579
  77. data/sunspot/lib/sunspot/adapters.rb +0 -349
  78. data/sunspot/lib/sunspot/batcher.rb +0 -62
  79. data/sunspot/lib/sunspot/class_set.rb +0 -23
  80. data/sunspot/lib/sunspot/composite_setup.rb +0 -202
  81. data/sunspot/lib/sunspot/configuration.rb +0 -53
  82. data/sunspot/lib/sunspot/data_extractor.rb +0 -50
  83. data/sunspot/lib/sunspot/dsl.rb +0 -5
  84. data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
  85. data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
  86. data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
  87. data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
  88. data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
  89. data/sunspot/lib/sunspot/dsl/function.rb +0 -27
  90. data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
  91. data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
  92. data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
  93. data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
  94. data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
  95. data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
  96. data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
  97. data/sunspot/lib/sunspot/dsl/search.rb +0 -30
  98. data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
  99. data/sunspot/lib/sunspot/field.rb +0 -193
  100. data/sunspot/lib/sunspot/field_factory.rb +0 -129
  101. data/sunspot/lib/sunspot/indexer.rb +0 -136
  102. data/sunspot/lib/sunspot/query.rb +0 -11
  103. data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
  104. data/sunspot/lib/sunspot/query/bbox.rb +0 -15
  105. data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
  106. data/sunspot/lib/sunspot/query/common_query.rb +0 -96
  107. data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
  108. data/sunspot/lib/sunspot/query/connective.rb +0 -206
  109. data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
  110. data/sunspot/lib/sunspot/query/dismax.rb +0 -132
  111. data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
  112. data/sunspot/lib/sunspot/query/field_group.rb +0 -37
  113. data/sunspot/lib/sunspot/query/filter.rb +0 -38
  114. data/sunspot/lib/sunspot/query/function_query.rb +0 -52
  115. data/sunspot/lib/sunspot/query/geo.rb +0 -53
  116. data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
  117. data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
  118. data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
  119. data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
  120. data/sunspot/lib/sunspot/query/pagination.rb +0 -42
  121. data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
  122. data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
  123. data/sunspot/lib/sunspot/query/restriction.rb +0 -308
  124. data/sunspot/lib/sunspot/query/scope.rb +0 -9
  125. data/sunspot/lib/sunspot/query/sort.rb +0 -109
  126. data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
  127. data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
  128. data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
  129. data/sunspot/lib/sunspot/schema.rb +0 -151
  130. data/sunspot/lib/sunspot/search.rb +0 -9
  131. data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
  132. data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
  133. data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
  134. data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
  135. data/sunspot/lib/sunspot/search/field_group.rb +0 -70
  136. data/sunspot/lib/sunspot/search/group.rb +0 -54
  137. data/sunspot/lib/sunspot/search/highlight.rb +0 -38
  138. data/sunspot/lib/sunspot/search/hit.rb +0 -150
  139. data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
  140. data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
  141. data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
  142. data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
  143. data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
  144. data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
  145. data/sunspot/lib/sunspot/session.rb +0 -262
  146. data/sunspot/lib/sunspot/session_proxy.rb +0 -95
  147. data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
  148. data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
  149. data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
  150. data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
  151. data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
  152. data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
  153. data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
  154. data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
  155. data/sunspot/lib/sunspot/setup.rb +0 -350
  156. data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
  157. data/sunspot/lib/sunspot/type.rb +0 -393
  158. data/sunspot/lib/sunspot/util.rb +0 -252
  159. data/sunspot/lib/sunspot/version.rb +0 -3
  160. data/sunspot/script/console +0 -10
  161. data/sunspot/spec/api/adapters_spec.rb +0 -68
  162. data/sunspot/spec/api/batcher_spec.rb +0 -112
  163. data/sunspot/spec/api/binding_spec.rb +0 -50
  164. data/sunspot/spec/api/class_set_spec.rb +0 -24
  165. data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
  166. data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
  167. data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
  168. data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
  169. data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
  170. data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
  171. data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
  172. data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
  173. data/sunspot/spec/api/indexer_spec.rb +0 -14
  174. data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
  175. data/sunspot/spec/api/query/connectives_examples.rb +0 -201
  176. data/sunspot/spec/api/query/dsl_spec.rb +0 -18
  177. data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
  178. data/sunspot/spec/api/query/faceting_examples.rb +0 -497
  179. data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
  180. data/sunspot/spec/api/query/function_spec.rb +0 -79
  181. data/sunspot/spec/api/query/geo_examples.rb +0 -68
  182. data/sunspot/spec/api/query/group_spec.rb +0 -32
  183. data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
  184. data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
  185. data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
  186. data/sunspot/spec/api/query/scope_examples.rb +0 -275
  187. data/sunspot/spec/api/query/spatial_examples.rb +0 -27
  188. data/sunspot/spec/api/query/spec_helper.rb +0 -1
  189. data/sunspot/spec/api/query/standard_spec.rb +0 -29
  190. data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
  191. data/sunspot/spec/api/query/types_spec.rb +0 -20
  192. data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
  193. data/sunspot/spec/api/search/faceting_spec.rb +0 -360
  194. data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
  195. data/sunspot/spec/api/search/hits_spec.rb +0 -147
  196. data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
  197. data/sunspot/spec/api/search/results_spec.rb +0 -72
  198. data/sunspot/spec/api/search/search_spec.rb +0 -23
  199. data/sunspot/spec/api/search/spec_helper.rb +0 -1
  200. data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
  201. data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
  202. data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
  203. data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
  204. data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
  205. data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
  206. data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
  207. data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
  208. data/sunspot/spec/api/session_spec.rb +0 -232
  209. data/sunspot/spec/api/spec_helper.rb +0 -3
  210. data/sunspot/spec/api/sunspot_spec.rb +0 -29
  211. data/sunspot/spec/ext.rb +0 -11
  212. data/sunspot/spec/helpers/indexer_helper.rb +0 -17
  213. data/sunspot/spec/helpers/integration_helper.rb +0 -8
  214. data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
  215. data/sunspot/spec/helpers/query_helper.rb +0 -26
  216. data/sunspot/spec/helpers/search_helper.rb +0 -68
  217. data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
  218. data/sunspot/spec/integration/faceting_spec.rb +0 -330
  219. data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
  220. data/sunspot/spec/integration/geospatial_spec.rb +0 -96
  221. data/sunspot/spec/integration/highlighting_spec.rb +0 -44
  222. data/sunspot/spec/integration/indexing_spec.rb +0 -55
  223. data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
  224. data/sunspot/spec/integration/local_search_spec.rb +0 -64
  225. data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
  226. data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
  227. data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
  228. data/sunspot/spec/integration/test_pagination.rb +0 -43
  229. data/sunspot/spec/integration/unicode_spec.rb +0 -15
  230. data/sunspot/spec/mocks/adapters.rb +0 -33
  231. data/sunspot/spec/mocks/blog.rb +0 -3
  232. data/sunspot/spec/mocks/comment.rb +0 -21
  233. data/sunspot/spec/mocks/connection.rb +0 -126
  234. data/sunspot/spec/mocks/mock_adapter.rb +0 -30
  235. data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
  236. data/sunspot/spec/mocks/mock_record.rb +0 -52
  237. data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
  238. data/sunspot/spec/mocks/photo.rb +0 -11
  239. data/sunspot/spec/mocks/post.rb +0 -86
  240. data/sunspot/spec/mocks/super_class.rb +0 -2
  241. data/sunspot/spec/mocks/user.rb +0 -13
  242. data/sunspot/spec/spec_helper.rb +0 -40
  243. data/sunspot/sunspot.gemspec +0 -37
  244. data/sunspot/tasks/rdoc.rake +0 -27
  245. data/sunspot/tasks/schema.rake +0 -19
  246. data/sunspot_rails/.gitignore +0 -7
  247. data/sunspot_rails/LICENSE +0 -18
  248. data/sunspot_rails/Rakefile +0 -17
  249. data/sunspot_rails/dev_tasks/todo.rake +0 -4
  250. data/sunspot_solr/Gemfile +0 -3
  251. data/sunspot_solr/README.rdoc +0 -24
  252. data/sunspot_solr/bin/sunspot-installer +0 -20
  253. data/sunspot_solr/bin/sunspot-solr +0 -80
  254. data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
  255. data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
  256. data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
  257. data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
  258. data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
  259. data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
  260. data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
  261. data/sunspot_solr/lib/sunspot_solr.rb +0 -5
  262. data/sunspot_solr/solr/README.txt +0 -42
  263. data/sunspot_solr/solr/etc/jetty.xml +0 -219
  264. data/sunspot_solr/solr/etc/webdefault.xml +0 -379
  265. data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
  266. data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
  267. data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  268. data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  269. data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  270. data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  271. data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
  272. data/sunspot_solr/solr/solr/.gitignore +0 -1
  273. data/sunspot_solr/solr/solr/README.txt +0 -54
  274. data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
  275. data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
  276. data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  277. data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
  278. data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
  279. data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
  280. data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
  281. data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
  282. data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
  283. data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
  284. data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
  285. data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
  286. data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
  287. data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
  288. data/sunspot_solr/solr/start.jar +0 -0
  289. data/sunspot_solr/solr/webapps/solr.war +0 -0
  290. data/sunspot_solr/spec/server_spec.rb +0 -98
  291. data/sunspot_solr/spec/spec_helper.rb +0 -18
  292. data/sunspot_solr/sunspot_solr.gemspec +0 -37
  293. data/tools/gem_tasks.rb +0 -69
@@ -1,41 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot::SessionProxy::MasterSlaveSessionProxy do
4
- before :each do
5
- @master_session, @slave_session = Sunspot::Session.new, Sunspot::Session.new
6
- @proxy = Sunspot::SessionProxy::MasterSlaveSessionProxy.new(@master_session, @slave_session)
7
- end
8
-
9
- {
10
- :master_session => Sunspot::Session.public_instance_methods(false) - [:search, 'search', :new_search, 'new_search', :more_like_this, 'more_like_this', :new_more_like_this, 'new_more_like_this', :config, 'config'],
11
- :slave_session => [:search, :new_search, :more_like_this, :new_more_like_this]
12
- }.each_pair do |delegate, methods|
13
- methods.each do |method|
14
- it "should delegate #{method} to #{delegate}" do
15
- args = Array.new(Sunspot::Session.instance_method(method).arity.abs) do
16
- stub('arg')
17
- end
18
- instance_variable_get(:"@#{delegate}").should_receive(method).with(*args)
19
- @proxy.send(method, *args)
20
- end
21
- end
22
- end
23
-
24
- it 'should return master session config by default' do
25
- @proxy.config.should eql(@master_session.config)
26
- end
27
-
28
- it 'should return master session config when specified' do
29
- @proxy.config(:master).should eql(@master_session.config)
30
- end
31
-
32
- it 'should return slave session config when specified' do
33
- @proxy.config(:slave).should eql(@slave_session.config)
34
- end
35
-
36
- it 'should raise ArgumentError when bogus config specified' do
37
- lambda { @proxy.config(:bogus) }.should raise_error
38
- end
39
-
40
- it_should_behave_like 'session proxy'
41
- end
@@ -1,78 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot::SessionProxy::Retry5xxSessionProxy do
4
-
5
- before :each do
6
- Sunspot::Session.connection_class = Mock::ConnectionFactory.new
7
- @sunspot_session = Sunspot.session
8
- @proxy = Sunspot::SessionProxy::Retry5xxSessionProxy.new(@sunspot_session)
9
- Sunspot.session = @proxy
10
- end
11
-
12
- after :each do
13
- Sunspot::Session.connection_class = nil
14
- Sunspot.reset!(true)
15
- end
16
-
17
- class FakeRSolrErrorHttp < RSolr::Error::Http
18
- def backtrace
19
- []
20
- end
21
- end
22
-
23
- let :fake_rsolr_request do
24
- {:uri => 'http://solr.test/uri'}
25
- end
26
-
27
- def fake_rsolr_response(status)
28
- {:status => status.to_s}
29
- end
30
-
31
- let :post do
32
- Post.new(:title => 'test')
33
- end
34
-
35
- it "should behave normally without a stubbed exception" do
36
- @sunspot_session.should_receive(:index).and_return(mock)
37
- Sunspot.index(post)
38
- end
39
-
40
- it "should be successful with a single exception followed by a sucess" do
41
- e = FakeRSolrErrorHttp.new(fake_rsolr_request, fake_rsolr_response(503))
42
- @sunspot_session.should_receive(:index).and_return do
43
- @sunspot_session.should_receive(:index).and_return(mock)
44
- raise e
45
- end
46
- Sunspot.index(post)
47
- end
48
-
49
- it "should return the error response after two exceptions" do
50
- fake_response = fake_rsolr_response(503)
51
- e = FakeRSolrErrorHttp.new(fake_rsolr_request, fake_response)
52
- fake_success = mock('success')
53
-
54
- @sunspot_session.should_receive(:index).and_return do
55
- @sunspot_session.should_receive(:index).and_return do
56
- @sunspot_session.stub!(:index).and_return(fake_success)
57
- raise e
58
- end
59
- raise e
60
- end
61
-
62
- response = Sunspot.index(post)
63
- response.should_not == fake_success
64
- response.should == fake_response
65
- end
66
-
67
- it "should not retry a 4xx" do
68
- e = FakeRSolrErrorHttp.new(fake_rsolr_request, fake_rsolr_response(400))
69
- @sunspot_session.should_receive(:index).and_raise(e)
70
- lambda { Sunspot.index(post) }.should raise_error
71
- end
72
-
73
- # TODO: try against more than just Sunspot.index? but that's just testing the
74
- # invocation of delegate, so probably not important. -nz 11Apr12
75
-
76
- it_should_behave_like 'session proxy'
77
-
78
- end
@@ -1,77 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot::SessionProxy::ShardingSessionProxy do
4
- before do
5
- @proxy = MockShardingSessionProxy.new(session)
6
- end
7
-
8
- [:index, :index!, :remove, :remove!].each do |method|
9
- it "should delegate #{method} to appropriate shard" do
10
- posts = [Post.new(:blog_id => 2), Post.new(:blog_id => 3)]
11
- @proxy.sessions[0].should_receive(method).with([posts[0]])
12
- @proxy.sessions[1].should_receive(method).with([posts[1]])
13
- @proxy.send(method, posts[0])
14
- @proxy.send(method, posts[1])
15
- end
16
- end
17
-
18
- [:remove_by_id, :remove_by_id!].each do |method|
19
- it "should raise NotSupportedError when #{method} called" do
20
- lambda { @proxy.send(method, Post, 1) }.should raise_error(Sunspot::SessionProxy::NotSupportedError)
21
- end
22
- end
23
-
24
- [:remove_all, :remove_all!].each do |method|
25
- it "should raise NotSupportedError when #{method} called with argument" do
26
- lambda { @proxy.send(method, Post) }.should raise_error(Sunspot::SessionProxy::NotSupportedError)
27
- end
28
-
29
- it "should delegate #{method} without argument to all shards" do
30
- @proxy.sessions.each { |session| session.should_receive(method) }
31
- @proxy.send(method)
32
- end
33
- end
34
-
35
- [:commit, :commit_if_dirty, :commit_if_delete_dirty, :optimize].each do |method|
36
- it "should delegate #{method} to all sessions" do
37
- @proxy.sessions.each do |session|
38
- session.should_receive(method)
39
- end
40
- @proxy.send(method)
41
- end
42
- end
43
-
44
- it "should not support the :batch method" do
45
- lambda { @proxy.batch }.should raise_error(Sunspot::SessionProxy::NotSupportedError)
46
- end
47
-
48
- it "should delegate new_search to search session, adding in shards parameter" do
49
- search = @proxy.new_search(Post)
50
- search.query[:shards].should ==
51
- 'http://localhost:8980/solr,http://localhost:8981/solr'
52
- end
53
-
54
- it "should delegate search to search session, adding in shards parameter" do
55
- @proxy.search(Post)
56
- connection.should have_last_search_with(
57
- :shards => 'http://localhost:8980/solr,http://localhost:8981/solr'
58
- )
59
- end
60
-
61
- [:dirty, :delete_dirty].each do |method|
62
- it "should be dirty if any of the sessions are dirty" do
63
- @proxy.sessions[0].stub!(:"#{method}?").and_return(true)
64
- @proxy.should send("be_#{method}")
65
- end
66
-
67
- it "should not be dirty if none of the sessions are dirty" do
68
- @proxy.should_not send("be_#{method}")
69
- end
70
- end
71
-
72
- it "should raise a NotSupportedError when :config is called" do
73
- lambda { @proxy.config }.should raise_error(Sunspot::SessionProxy::NotSupportedError)
74
- end
75
-
76
- it_should_behave_like 'session proxy'
77
- end
@@ -1,24 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot::SessionProxy::ShardingSessionProxy do
4
-
5
- FakeException = Class.new(StandardError)
6
- SUPPORTED_METHODS = Sunspot::SessionProxy::SilentFailSessionProxy::SUPPORTED_METHODS
7
-
8
- before do
9
- @search_session = mock(Sunspot::Session.new)
10
- @proxy = Sunspot::SessionProxy::SilentFailSessionProxy.new(@search_session)
11
- end
12
-
13
- it "should call rescued_exception when an exception is caught" do
14
- SUPPORTED_METHODS.each do |method|
15
- e = FakeException.new(method)
16
- @search_session.stub!(method).and_raise(e)
17
- @proxy.should_receive(:rescued_exception).with(method, e)
18
- @proxy.send(method)
19
- end
20
- end
21
-
22
- it_should_behave_like 'session proxy'
23
-
24
- end
@@ -1,9 +0,0 @@
1
- require File.expand_path('spec_helper', File.join(File.dirname(__FILE__), '..'))
2
-
3
- shared_examples_for 'session proxy' do
4
- Sunspot::Session.public_instance_methods(false).each do |method|
5
- it "should respond to #{method.inspect}" do
6
- @proxy.should respond_to(method)
7
- end
8
- end
9
- end
@@ -1,39 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
- require 'weakref'
3
-
4
- describe Sunspot::SessionProxy::ThreadLocalSessionProxy do
5
- before :each do
6
- @config = Sunspot::Configuration.build
7
- @proxy = Sunspot::SessionProxy::ThreadLocalSessionProxy.new(@config)
8
- end
9
-
10
- it 'should have the same session for the same thread' do
11
- @proxy.session.should eql(@proxy.session)
12
- end
13
-
14
- it 'should not have the same session for different threads' do
15
- session1 = @proxy.session
16
- session2 = nil
17
- Thread.new do
18
- session2 = @proxy.session
19
- end.join
20
- session1.should_not eql(session2)
21
- end
22
-
23
- it 'should not have the same session for the same thread in different proxy instances' do
24
- proxy2 = Sunspot::SessionProxy::ThreadLocalSessionProxy.new(@config)
25
- @proxy.session.should_not eql(proxy2.session)
26
- end
27
-
28
- (Sunspot::Session.public_instance_methods(false) - ['config', :config]).each do |method|
29
- it "should delegate #{method.inspect} to its session" do
30
- args = Array.new(Sunspot::Session.instance_method(method).arity.abs) do
31
- stub('arg')
32
- end
33
- @proxy.session.should_receive(method).with(*args)
34
- @proxy.send(method, *args)
35
- end
36
- end
37
-
38
- it_should_behave_like 'session proxy'
39
- end
@@ -1,232 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- shared_examples_for 'all sessions' do
4
- context '#index()' do
5
- before :each do
6
- @session.index(Post.new)
7
- end
8
-
9
- it 'should add document to connection' do
10
- connection.should have(1).adds
11
- end
12
- end
13
-
14
- context '#index!()' do
15
- before :each do
16
- @session.index!(Post.new)
17
- end
18
-
19
- it 'should add document to connection' do
20
- connection.should have(1).adds
21
- end
22
-
23
- it 'should commit' do
24
- connection.should have(1).commits
25
- end
26
- end
27
-
28
- context '#commit()' do
29
- before :each do
30
- @session.commit
31
- end
32
-
33
- it 'should commit' do
34
- connection.should have(1).commits
35
- end
36
- end
37
-
38
- context '#optimize()' do
39
- before :each do
40
- @session.optimize
41
- end
42
-
43
- it 'should optimize' do
44
- connection.should have(1).optims
45
- end
46
- end
47
-
48
- context '#search()' do
49
- before :each do
50
- @session.search(Post)
51
- end
52
-
53
- it 'should search' do
54
- connection.should have(1).searches
55
- end
56
- end
57
- end
58
-
59
- describe 'Session' do
60
- before :each do
61
- @connection_factory = Mock::ConnectionFactory.new
62
- Sunspot::Session.connection_class = @connection_factory
63
- end
64
-
65
- after :each do
66
- Sunspot::Session.connection_class = nil
67
- Sunspot.reset!
68
- end
69
-
70
- context 'singleton session' do
71
- before :each do
72
- Sunspot.reset!
73
- @session = Sunspot
74
- end
75
-
76
- it_should_behave_like 'all sessions'
77
-
78
- it 'should open connection with defaults if nothing specified' do
79
- Sunspot.commit
80
- connection.opts[:url].should == 'http://127.0.0.1:8983/solr'
81
- end
82
-
83
- it 'should open a connection with custom host' do
84
- Sunspot.config.solr.url = 'http://127.0.0.1:8981/solr'
85
- Sunspot.commit
86
- connection.opts[:url].should == 'http://127.0.0.1:8981/solr'
87
- end
88
-
89
- it 'should open a connection with custom read timeout' do
90
- Sunspot.config.solr.read_timeout = 0.5
91
- Sunspot.commit
92
- connection.opts[:read_timeout].should == 0.5
93
- end
94
-
95
- it 'should open a connection with custom open timeout' do
96
- Sunspot.config.solr.open_timeout = 0.5
97
- Sunspot.commit
98
- connection.opts[:open_timeout].should == 0.5
99
- end
100
- end
101
-
102
- context 'custom session' do
103
- before :each do
104
- @session = Sunspot::Session.new
105
- end
106
-
107
- it_should_behave_like 'all sessions'
108
-
109
- it 'should open a connection with custom host' do
110
- session = Sunspot::Session.new do |config|
111
- config.solr.url = 'http://127.0.0.1:8982/solr'
112
- end
113
- session.commit
114
- connection.opts[:url].should == 'http://127.0.0.1:8982/solr'
115
- end
116
- end
117
-
118
- context 'dirty sessions' do
119
- before :each do
120
- @session = Sunspot::Session.new
121
- end
122
-
123
- it 'should start out not dirty' do
124
- @session.dirty?.should be_false
125
- end
126
-
127
- it 'should start out not delete_dirty' do
128
- @session.delete_dirty?.should be_false
129
- end
130
-
131
- it 'should be dirty after adding an item' do
132
- @session.index(Post.new)
133
- @session.dirty?.should be_true
134
- end
135
-
136
- it 'should be not be delete_dirty after adding an item' do
137
- @session.index(Post.new)
138
- @session.delete_dirty?.should be_false
139
- end
140
-
141
- it 'should be dirty after deleting an item' do
142
- @session.remove(Post.new)
143
- @session.dirty?.should be_true
144
- end
145
-
146
- it 'should be delete_dirty after deleting an item' do
147
- @session.remove(Post.new)
148
- @session.delete_dirty?.should be_true
149
- end
150
-
151
- it 'should be dirty after a remove_all for a class' do
152
- @session.remove_all(Post)
153
- @session.dirty?.should be_true
154
- end
155
-
156
- it 'should be delete_dirty after a remove_all for a class' do
157
- @session.remove_all(Post)
158
- @session.delete_dirty?.should be_true
159
- end
160
-
161
- it 'should be dirty after a global remove_all' do
162
- @session.remove_all
163
- @session.dirty?.should be_true
164
- end
165
-
166
- it 'should be delete_dirty after a global remove_all' do
167
- @session.remove_all
168
- @session.delete_dirty?.should be_true
169
- end
170
-
171
- it 'should not be dirty after a commit' do
172
- @session.index(Post.new)
173
- @session.commit
174
- @session.dirty?.should be_false
175
- end
176
-
177
- it 'should not be dirty after an optimize' do
178
- @session.index(Post.new)
179
- @session.optimize
180
- @session.dirty?.should be_false
181
- end
182
-
183
- it 'should not be delete_dirty after a commit' do
184
- @session.remove(Post.new)
185
- @session.commit
186
- @session.delete_dirty?.should be_false
187
- end
188
-
189
- it 'should not be delete_dirty after an optimize' do
190
- @session.remove(Post.new)
191
- @session.optimize
192
- @session.delete_dirty?.should be_false
193
- end
194
-
195
- it 'should not commit when commit_if_dirty called on clean session' do
196
- @session.commit_if_dirty
197
- connection.should have(0).commits
198
- end
199
-
200
- it 'should not commit when commit_if_delete_dirty called on clean session' do
201
- @session.commit_if_delete_dirty
202
- connection.should have(0).commits
203
- end
204
-
205
- it 'should commit when commit_if_dirty called on dirty session' do
206
- @session.index(Post.new)
207
- @session.commit_if_dirty
208
- connection.should have(1).commits
209
- end
210
-
211
- it 'should commit when commit_if_delete_dirty called on delete_dirty session' do
212
- @session.remove(Post.new)
213
- @session.commit_if_delete_dirty
214
- connection.should have(1).commits
215
- end
216
- end
217
-
218
- context 'session proxy' do
219
- it 'should send messages to manually assigned session proxy' do
220
- stub_session = stub!('session')
221
- Sunspot.session = stub_session
222
- post = Post.new
223
- stub_session.should_receive(:index).with(post)
224
- Sunspot.index(post)
225
- Sunspot.reset!
226
- end
227
- end
228
-
229
- def connection
230
- @connection_factory.instance
231
- end
232
- end