gojee-sunspot-rails 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. metadata +5 -97
  2. data/.gitignore +0 -7
  3. data/.rspec +0 -1
  4. data/History.txt +0 -74
  5. data/LICENSE +0 -18
  6. data/MIT-LICENSE +0 -20
  7. data/README.rdoc +0 -265
  8. data/Rakefile +0 -17
  9. data/TODO +0 -8
  10. data/dev_tasks/rdoc.rake +0 -24
  11. data/dev_tasks/release.rake +0 -4
  12. data/dev_tasks/spec.rake +0 -107
  13. data/dev_tasks/todo.rake +0 -4
  14. data/gemfiles/rails-2.3.14 +0 -12
  15. data/gemfiles/rails-3.0.11 +0 -12
  16. data/gemfiles/rails-3.1.3 +0 -12
  17. data/gemfiles/rails-3.2.1 +0 -12
  18. data/generators/sunspot/sunspot_generator.rb +0 -9
  19. data/generators/sunspot/templates/sunspot.yml +0 -20
  20. data/install.rb +0 -1
  21. data/lib/generators/sunspot_rails/install/install_generator.rb +0 -13
  22. data/lib/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -19
  23. data/lib/generators/sunspot_rails.rb +0 -9
  24. data/lib/sunspot/rails/adapters.rb +0 -83
  25. data/lib/sunspot/rails/configuration.rb +0 -376
  26. data/lib/sunspot/rails/init.rb +0 -5
  27. data/lib/sunspot/rails/log_subscriber.rb +0 -33
  28. data/lib/sunspot/rails/railtie.rb +0 -36
  29. data/lib/sunspot/rails/railties/controller_runtime.rb +0 -36
  30. data/lib/sunspot/rails/request_lifecycle.rb +0 -36
  31. data/lib/sunspot/rails/searchable.rb +0 -491
  32. data/lib/sunspot/rails/server.rb +0 -114
  33. data/lib/sunspot/rails/solr_instrumentation.rb +0 -19
  34. data/lib/sunspot/rails/solr_logging.rb +0 -62
  35. data/lib/sunspot/rails/spec_helper.rb +0 -26
  36. data/lib/sunspot/rails/stub_session_proxy.rb +0 -142
  37. data/lib/sunspot/rails/tasks.rb +0 -84
  38. data/lib/sunspot/rails.rb +0 -69
  39. data/lib/sunspot_rails.rb +0 -12
  40. data/spec/configuration_spec.rb +0 -209
  41. data/spec/model_lifecycle_spec.rb +0 -63
  42. data/spec/model_spec.rb +0 -601
  43. data/spec/rails_template/app/controllers/application_controller.rb +0 -10
  44. data/spec/rails_template/app/controllers/posts_controller.rb +0 -6
  45. data/spec/rails_template/app/models/author.rb +0 -8
  46. data/spec/rails_template/app/models/blog.rb +0 -12
  47. data/spec/rails_template/app/models/location.rb +0 -2
  48. data/spec/rails_template/app/models/photo_post.rb +0 -2
  49. data/spec/rails_template/app/models/post.rb +0 -11
  50. data/spec/rails_template/app/models/post_with_auto.rb +0 -10
  51. data/spec/rails_template/app/models/post_with_default_scope.rb +0 -11
  52. data/spec/rails_template/config/boot.rb +0 -127
  53. data/spec/rails_template/config/preinitializer.rb +0 -22
  54. data/spec/rails_template/config/routes.rb +0 -9
  55. data/spec/rails_template/config/sunspot.yml +0 -24
  56. data/spec/rails_template/db/schema.rb +0 -27
  57. data/spec/request_lifecycle_spec.rb +0 -61
  58. data/spec/schema.rb +0 -27
  59. data/spec/searchable_spec.rb +0 -12
  60. data/spec/server_spec.rb +0 -33
  61. data/spec/session_spec.rb +0 -57
  62. data/spec/shared_examples/indexed_after_save.rb +0 -8
  63. data/spec/shared_examples/not_indexed_after_save.rb +0 -8
  64. data/spec/spec_helper.rb +0 -48
  65. data/spec/stub_session_proxy_spec.rb +0 -122
  66. data/sunspot_rails.gemspec +0 -43
  67. data/tmp/.gitkeep +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gojee-sunspot-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -37,7 +37,7 @@ dependencies:
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.2
40
+ version: 2.0.3
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
@@ -45,7 +45,7 @@ dependencies:
45
45
  requirements:
46
46
  - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 2.0.2
48
+ version: 2.0.3
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: nokogiri
51
51
  requirement: !ruby/object:Gem::Requirement
@@ -104,73 +104,7 @@ email:
104
104
  executables: []
105
105
  extensions: []
106
106
  extra_rdoc_files: []
107
- files:
108
- - .gitignore
109
- - .rspec
110
- - History.txt
111
- - LICENSE
112
- - MIT-LICENSE
113
- - README.rdoc
114
- - Rakefile
115
- - TODO
116
- - dev_tasks/rdoc.rake
117
- - dev_tasks/release.rake
118
- - dev_tasks/spec.rake
119
- - dev_tasks/todo.rake
120
- - gemfiles/rails-2.3.14
121
- - gemfiles/rails-3.0.11
122
- - gemfiles/rails-3.1.3
123
- - gemfiles/rails-3.2.1
124
- - generators/sunspot/sunspot_generator.rb
125
- - generators/sunspot/templates/sunspot.yml
126
- - install.rb
127
- - lib/generators/sunspot_rails.rb
128
- - lib/generators/sunspot_rails/install/install_generator.rb
129
- - lib/generators/sunspot_rails/install/templates/config/sunspot.yml
130
- - lib/sunspot/rails.rb
131
- - lib/sunspot/rails/adapters.rb
132
- - lib/sunspot/rails/configuration.rb
133
- - lib/sunspot/rails/init.rb
134
- - lib/sunspot/rails/log_subscriber.rb
135
- - lib/sunspot/rails/railtie.rb
136
- - lib/sunspot/rails/railties/controller_runtime.rb
137
- - lib/sunspot/rails/request_lifecycle.rb
138
- - lib/sunspot/rails/searchable.rb
139
- - lib/sunspot/rails/server.rb
140
- - lib/sunspot/rails/solr_instrumentation.rb
141
- - lib/sunspot/rails/solr_logging.rb
142
- - lib/sunspot/rails/spec_helper.rb
143
- - lib/sunspot/rails/stub_session_proxy.rb
144
- - lib/sunspot/rails/tasks.rb
145
- - lib/sunspot_rails.rb
146
- - spec/configuration_spec.rb
147
- - spec/model_lifecycle_spec.rb
148
- - spec/model_spec.rb
149
- - spec/rails_template/app/controllers/application_controller.rb
150
- - spec/rails_template/app/controllers/posts_controller.rb
151
- - spec/rails_template/app/models/author.rb
152
- - spec/rails_template/app/models/blog.rb
153
- - spec/rails_template/app/models/location.rb
154
- - spec/rails_template/app/models/photo_post.rb
155
- - spec/rails_template/app/models/post.rb
156
- - spec/rails_template/app/models/post_with_auto.rb
157
- - spec/rails_template/app/models/post_with_default_scope.rb
158
- - spec/rails_template/config/boot.rb
159
- - spec/rails_template/config/preinitializer.rb
160
- - spec/rails_template/config/routes.rb
161
- - spec/rails_template/config/sunspot.yml
162
- - spec/rails_template/db/schema.rb
163
- - spec/request_lifecycle_spec.rb
164
- - spec/schema.rb
165
- - spec/searchable_spec.rb
166
- - spec/server_spec.rb
167
- - spec/session_spec.rb
168
- - spec/shared_examples/indexed_after_save.rb
169
- - spec/shared_examples/not_indexed_after_save.rb
170
- - spec/spec_helper.rb
171
- - spec/stub_session_proxy_spec.rb
172
- - sunspot_rails.gemspec
173
- - tmp/.gitkeep
107
+ files: []
174
108
  homepage: http://github.com/outoftime/sunspot/tree/master/sunspot_rails
175
109
  licenses: []
176
110
  post_install_message:
@@ -200,30 +134,4 @@ rubygems_version: 1.8.24
200
134
  signing_key:
201
135
  specification_version: 3
202
136
  summary: Rails integration for the Sunspot Solr search library
203
- test_files:
204
- - spec/configuration_spec.rb
205
- - spec/model_lifecycle_spec.rb
206
- - spec/model_spec.rb
207
- - spec/rails_template/app/controllers/application_controller.rb
208
- - spec/rails_template/app/controllers/posts_controller.rb
209
- - spec/rails_template/app/models/author.rb
210
- - spec/rails_template/app/models/blog.rb
211
- - spec/rails_template/app/models/location.rb
212
- - spec/rails_template/app/models/photo_post.rb
213
- - spec/rails_template/app/models/post.rb
214
- - spec/rails_template/app/models/post_with_auto.rb
215
- - spec/rails_template/app/models/post_with_default_scope.rb
216
- - spec/rails_template/config/boot.rb
217
- - spec/rails_template/config/preinitializer.rb
218
- - spec/rails_template/config/routes.rb
219
- - spec/rails_template/config/sunspot.yml
220
- - spec/rails_template/db/schema.rb
221
- - spec/request_lifecycle_spec.rb
222
- - spec/schema.rb
223
- - spec/searchable_spec.rb
224
- - spec/server_spec.rb
225
- - spec/session_spec.rb
226
- - spec/shared_examples/indexed_after_save.rb
227
- - spec/shared_examples/not_indexed_after_save.rb
228
- - spec/spec_helper.rb
229
- - spec/stub_session_proxy_spec.rb
137
+ test_files: []
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- sunspot-solr.pid
2
- doc
3
- pkg/*
4
- log
5
- .bundle
6
- tmp/*
7
- gemfiles/*.lock
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/History.txt DELETED
@@ -1,74 +0,0 @@
1
- == 2.0.0
2
- * Finds orphaned objects in batches to avoid excessive memory use (Peer Allan)
3
- * Default batch size can be specified by setting `Sunspot.config.indexing.default_batch_size`
4
- (Peer Allan)
5
- * Explanation of `progress_bar` is written to stdout instead of stderr (Matt Gornick)
6
- * Fixes deprecated behavior of using InstanceMethods module with
7
- ActiveSupport::Concern (Everton J. Carpes)
8
-
9
- == 1.3.0 2011-11-26
10
- * `Model.index` correctly uses `:first_id` option (Hamza Khan-Cheema)
11
- * Solr request performance is instrumented in Rails (Paco Guzmán)
12
- * Reindexing tasks display a progress bar if `progress_bar` gem is available (Paul Carey)
13
- * Deprecated Rails syntax is removed from `Sunspot::Rails::Searchable` (Steve Schwartz)
14
- * Deprecated syntax is removed from rake tasks (Huned Botee)
15
- * `sunspot:reindex` rake task correctly handles namespaced models (João Gradim)
16
- * `bind_address` parameter can be specified in `sunspot.yml` to bind Solr to a
17
- specific interface (Sylvain Utard)
18
- * `disabled` parameter can be specified in `sunspot.yml` to stub out the
19
- connection to Solr (David B)
20
-
21
- == 1.2.1 2010-12-28
22
- * Decreased default reindexing batch size from 500 to 50
23
-
24
- == 1.2.0 2010-12-28
25
- * Compatible with both Rails 2 and Rails 3
26
- * Configure Sunspot with a SOLR_URL or WEBSOLR_URL environment variable, also
27
- provide a default port based on Rails.env.
28
- * Fix the 'Anonymous modules' ArgumentError for Ruby 1.9.2 and Rails 2.3
29
- * Fix SQL's ambiguous ID issue when tables are joined
30
-
31
- == 1.1.0 2010-04-01
32
- * Added include option to searchable options to allow definition of eager
33
- loading associations when indexing
34
-
35
- == 1.0.4 2010-03-19
36
- * Fix StubSessionProxy to match new internal API
37
-
38
- == 1.0.2 2010-03-11
39
- * Allow use of ActiveRecord object for coordinates extraction
40
- * Works with non-standard primary keys
41
- * Add :include, :select options to Searchable::search()
42
- * Allow specification of min_memory and max_memory in config/sunspot.yml
43
- * Searchable now more considerate of model namespaces
44
-
45
- == 1.0.1 2010-03-05
46
- * Fix Solr logging compatibility with RSolr 0.12.1
47
-
48
- == 1.0.0 2010-03-03
49
- * Sunspot::Rails::Server subclasses Sunspot::Server; no longer needs to shell out
50
- * Use Sunspot built-in session proxies in Sunspot::Rails
51
- * Sunspot::Rails adapter compatible with assumed inconsistency
52
- * Use session proxy for disconnecting Sunspot in specs
53
- * Allow specification of first ID for reindex batches.
54
- * Log Solr requests in Rails logger
55
- * Use class_inheritable_hash for sunspot_options
56
- * Add `index` class method, which is like `reindex` but doesn't clear first
57
- * Rename sunspot:solr:reindex to sunspot:reindex
58
- * Use Sunspot::Installer to bootstrap Rails Solr home
59
-
60
- == 0.10.7
61
- * Added Sunspot::Rails::Server class to start/stop/run/bootstrap the solr server
62
- * Added log_level key to sunspot.yml, see java docs for valid values (http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/Level.html)
63
- * Added log_file key to sunspot.yml. This defaults to RAILS_ROOT/log/solr_<environment>.log.
64
- * Added support for localsolr in sunspot_rails. You can add custom extension.jar files to your Rails.root/solr/lib directory
65
- * Added an option to not reindex an object when certain columns have changed.
66
-
67
- == 0.10.6
68
- * Added script/generate sunspot support to generate the required sunspot.yml
69
- file [Brandon Keepers]
70
-
71
- == 0.10.5
72
- * Added a auto_commit_after_request option to sunspot.yml. Sunspot will not
73
- automatically commit any changes in solr if you set this value to false.
74
- Strongly encouraged for production environment.
data/LICENSE DELETED
@@ -1,18 +0,0 @@
1
- Permission is hereby granted, free of charge, to any person obtaining
2
- a copy of this software and associated documentation files (the
3
- 'Software'), to deal in the Software without restriction, including
4
- without limitation the rights to use, copy, modify, merge, publish,
5
- distribute, sublicense, and/or sell copies of the Software, and to
6
- permit persons to whom the Software is furnished to do so, subject to
7
- the following conditions:
8
-
9
- The above copyright notice and this permission notice shall be
10
- included in all copies or substantial portions of the Software.
11
-
12
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
13
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
16
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
17
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
18
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2009 Mat Brown
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc DELETED
@@ -1,265 +0,0 @@
1
- = Sunspot::Rails
2
-
3
- Sunspot::Rails is a Rails plugin that provides drop-in integration of the
4
- Sunspot[http://outoftime.github.com/sunspot] Solr search library with Rails. It
5
- provides the following features:
6
-
7
- * Configure Sunspot using config/sunspot.yml
8
- * Extend ActiveRecord for easy index configuration, search, and indexing
9
- * Automatically index ActiveRecord objects when they are saved, and remove them
10
- from the index when they are destroyed (can be disabled)
11
- * Automatically commit Solr changes at the end of each request (can be disabled)
12
- * Provide utility methods to find and fix orphaned documents and rebuild the
13
- Solr index for a given class
14
- * Provide rake tasks for starting and stopping the development Solr instance,
15
- using the configuration in sunspot.yml
16
-
17
- Sunspot::Rails has been tested with Rails versions 2.3 and 3.0
18
-
19
- == Installation in Rails 3
20
-
21
- In your <code>Gemfile</code>:
22
-
23
- gem 'sunspot_rails'
24
- # This is an optional packaged Solr:
25
- group :test, :development do
26
- gem 'sunspot_solr'
27
- end
28
-
29
- == Installation in Rails 2
30
-
31
- In your project's <code>config/environment.rb</code>, add the following gem dependencies:
32
-
33
- config.gem 'sunspot'
34
- config.gem 'sunspot_rails'
35
-
36
- And in your project's <code>config/development.rb</code> and <code>config/test.rb</code>,
37
- add the following gem dependency to install the optional packaged Solr:
38
-
39
- config.gem 'sunspot_solr'
40
-
41
- Install the gems with:
42
-
43
- rake gems:install
44
-
45
- Generate the file <code>config/sunspot.yml</code>:
46
-
47
- script/generate sunspot
48
-
49
- Rails doesn't automatically load rake tasks from plugins installed as gems
50
- (https://rails.lighthouseapp.com/projects/8994/tickets/59). If you installed
51
- Sunspot::Rails as a gem, add the following line to your project's Rakefile:
52
-
53
- require 'sunspot/rails/tasks'
54
-
55
- == Using Sunspot::Rails
56
-
57
- If you wish to make modifications to the Solr schema, you can create a custom
58
- Solr home in your project directory. In order to do so, create the directory
59
- <code>RAILS_ROOT/solr/conf</code>, and copy in the contents of the Solr gem's
60
- <code>solr/solr/conf</code> directory. If the files are in the right place,
61
- Sunspot::Rails will detect them and tell Solr to use your local configurations.
62
- Use caution when modifying <code>schema.xml</code> - Sunspot relies on the
63
- field naming scheme in the packaged schema file.
64
-
65
- To start up a Solr instance, issue the following (requires sunspot_solr to be
66
- installed):
67
-
68
- rake sunspot:solr:start
69
-
70
- Note that using the built-in Solr instance packaged with Sunspot is great for
71
- development, but is not recommended for production. See the Sunspot
72
- documentation for more information.
73
-
74
- == Usage
75
-
76
- === Setup
77
-
78
- In order for an ActiveRecord model to be indexable and searchable, it must be
79
- configured for search. For example:
80
-
81
- class Post < ActiveRecord::Base
82
- searchable do
83
- text :title, :body
84
- integer :blog_id
85
- time :updated_at
86
- string :sort_title do
87
- title.downcase.sub(/^(an?|the) /, '')
88
- end
89
- end
90
- end
91
-
92
- See the documentation for Sunspot.setup for full details on what can go in the
93
- configuration block.
94
-
95
- === Indexing
96
-
97
- By default, models are indexed whenever they are saved, and removed from the
98
- index whenever they are destroyed. This behavior can be disabled:
99
-
100
- class Post < ActiveRecord::Base
101
- searchable :auto_index => false, :auto_remove => false do
102
- # setup...
103
- end
104
- end
105
-
106
- Note that <b>using the <code>:auto_remove</code> option is not recommended
107
- </b>, as destroying an object without removing it from the index will
108
- create an orphaned document in the index, which is a Bad Thing. Turning off
109
- <code>:auto_index</code> is perfectly safe if you prefer to manage indexing manually
110
- (perhaps using a background job).
111
-
112
- If you have disabled lifecycle indexing hooks, you can invoke indexing
113
- operations directly on your model:
114
-
115
- post = Post.create
116
- post.index
117
- post.remove_from_index
118
-
119
- === Committing
120
-
121
- When data is changed in Solr, it is initially stored in memory and not made
122
- available to the currently running searcher instance. Issuing a +commit+ to Solr
123
- will cause it to write the changes to disk, and instantiate a new searcher
124
- instance. This operation is fairly expensive, so rather than issuing a commit
125
- every time a document is added or removed, Sunspot::Rails issues a commit at
126
- the end of any request where data has been added to or removed from Solr. If
127
- you need to immediately issue a commit, bang!-versions of the methods are
128
- available:
129
-
130
- post = Post.create
131
- post.index!
132
- # this is the same as...
133
- post.index
134
- Sunspot.commit
135
-
136
- When writing tests outside of the context of a controller request, you will want
137
- to use one of these two approaches.
138
-
139
- === Searching
140
-
141
- Do it like this:
142
-
143
- Post.search do
144
- with :blog_id, 1
145
- with(:updated_at).greater_than(Time.now - 2.weeks)
146
- order :sort_title, :asc
147
- paginate :page => 1, :per_page => 15
148
- end
149
-
150
- See the documentation for <code>Sunspot.search</code> for all the options
151
- available in the search block, and the information available in the result
152
- block.
153
-
154
- === Searching for IDs
155
-
156
- In some situations, you may want to get the IDs for models returned by a search
157
- without actually loading the models out of the database. For that, you can
158
- call +search_ids+, using the same block format as #search. This will return an
159
- array of IDs.
160
-
161
- === Searching for multiple types
162
-
163
- Sunspot is entirely agnostic about whether searches are for one or more types;
164
- the only restriction is that columns used for restriction, ordering, etc. are
165
- defined in the same way for all types being searched. Sunspot::Rails does not
166
- provide any additional support for this, since there is not anything useful to
167
- be added, so just use the interface provided by Sunspot:
168
-
169
- Sunspot.search(Post, Comment) do
170
- with :blog_id, 1
171
- order :created_at, :asc
172
- end
173
-
174
- Be sure to check out the Sunspot documentation for all the details.
175
-
176
- === Adding search functionality in mixins
177
-
178
- Sunspot does not require that search setup for a given class happen all in one
179
- place; it is perfectly acceptable to call the <code>Sunspot.setup</code> method
180
- more than once. This capability is particularly useful for adding search
181
- functionality in mixins. For instance, if you have a +Ratable+ module, you may
182
- wish to add additional search fields for searchable classes that mix in that
183
- module. For example:
184
-
185
- module Ratable
186
- def self.included(base)
187
- if base.searchable?
188
- base.searchable do
189
- float :average_rating do
190
- ratings.average(:value)
191
- end
192
- end
193
- end
194
- end
195
- end
196
-
197
- Note the use of <code>base.searchable?</code> - this ensures that only classes
198
- that already have search enabled will have the additional configuration added.
199
- The above pattern requires that the class be declared searchable before the
200
- module is mixed in; other patterns (such as passing a :searchable option to an
201
- acts_as_-style declaration) may be more flexible.
202
-
203
- === Utility methods
204
-
205
- If you need to completely reindex all of the instances of a given model class,
206
- you can issue:
207
-
208
- Post.reindex
209
-
210
- If for some reason models get deleted from the database, but not from the index,
211
- they will become index orphans - not a good situation. To get IDs that exist in
212
- the index but not the database, you can use the +index_orphans+ method; to
213
- remove those documents from the index, use +clean_index_orphans+. Note that
214
- neither of these operations should be needed if Sunspot and Sunspot::Rails are
215
- used as intended.
216
-
217
- == Testing Solr integration using RSpec
218
-
219
- To disable the sunspot-solr integration for your active record models, require
220
- the file `sunspot/rails/spec_helper`
221
-
222
- Then, in your spec, use the #disconnect_sunspot method:
223
-
224
- require 'sunspot/rails/spec_helper'
225
-
226
- describe Post do
227
- disconnect_sunspot
228
-
229
- it 'should have some behavior'
230
- # ...
231
- end
232
- end
233
-
234
- In all of the examples in this group, all Sunspot calls will be stubbed out. The
235
- Sunspot#search method will return a stub search object that mimics a search with
236
- no results.
237
-
238
- == Further Reading
239
-
240
- Reading the {Sunspot documentation}[http://outoftime.github.com/sunspot/docs] is
241
- highly recommended. Sunspot::Rails exists to wrap Sunspot with a Rails-friendly
242
- API, but almost all of the functionality you use in Sunspot::Rails is
243
- implemented in Sunspot.
244
-
245
- Posts about Sunspot on my blog are available at http://outofti.me/tagged/sunspot
246
-
247
- == Bugs
248
-
249
- Please submit bug reports to https://github.com/sunspot/sunspot/issues
250
-
251
- == Contributors
252
-
253
- - Mat Brown (mat@patch.com)
254
- - Peer Allan (peer.allan@gmail.com)
255
- - Michael Moen (michael@underpantsgnome.com)
256
- - Benjamin Krause (bk@benjaminkrause.com)
257
- - Adam Salter (adam@codebright.net)
258
- - Brandon Keepers (brandon@opensoul.org)
259
- - Paul Canavese (paul@canavese.org)
260
- - John Eberly (jeberly@elctech.com)
261
- - Gert Thiel (gertthiel@gmail.com)
262
-
263
- == License
264
-
265
- Sunspot::Rails is distributed under the MIT License, copyright (c) 2009 Mat Brown
data/Rakefile DELETED
@@ -1,17 +0,0 @@
1
- require 'rake'
2
-
3
- begin
4
- require 'rdoc/task'
5
- rescue LoadError
6
- require 'rake/rdoctask'
7
- end
8
-
9
- if File.exist?(sunspot_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'sunspot', 'lib')))
10
- STDERR.puts("Using sunspot lib at #{sunspot_lib}")
11
- $: << sunspot_lib
12
- end
13
-
14
- task :environment do
15
- end
16
-
17
- FileList['dev_tasks/*.rake', 'lib/sunspot/rails/tasks.rb'].each { |file| load(file) }
data/TODO DELETED
@@ -1,8 +0,0 @@
1
- * Delegate new_search method
2
- =======
3
- * Fix final status output for reindex
4
- * Add batch-per-request option
5
- * Optionally yield from reindex
6
- * Access to all searchable classes
7
- * Add a method to disable sunspot updates for certain values, e.g.
8
- if you just touch a record, sunspot shouldn't index the
data/dev_tasks/rdoc.rake DELETED
@@ -1,24 +0,0 @@
1
- begin
2
- require 'hanna/rdoctask'
3
- rescue LoadError
4
- if require 'rubygems'
5
- retry
6
- end
7
- # It's OK if hanna isn't installed.
8
- end
9
-
10
- Rake::RDocTask.new(:doc) do |rdoc|
11
- rdoc.main = 'README.md'
12
- rdoc.rdoc_files.include('README.md', 'lib/sunspot/rails/**/*.rb', 'lib/sunspot/rails.rb')
13
- rdoc.rdoc_dir = 'doc'
14
- end
15
-
16
- namespace :doc do
17
- desc 'Generate rdoc and move into pages directory'
18
- task :publish => :redoc do
19
- doc_dir = File.join(File.dirname(__FILE__), '..', 'doc')
20
- publish_dir = File.join(File.dirname(__FILE__), '..', '..', 'pages', 'rails', 'docs')
21
- FileUtils.rm_rf(publish_dir) if File.exist?(publish_dir)
22
- FileUtils.cp_r(doc_dir, publish_dir)
23
- end
24
- end
@@ -1,4 +0,0 @@
1
- namespace :release do
2
- desc 'Release gem on RubyForge and GitHub'
3
- task :all => [:release, :"rubyforge:release:gem"]
4
- end
data/dev_tasks/spec.rake DELETED
@@ -1,107 +0,0 @@
1
- require 'fileutils'
2
-
3
- namespace :spec do
4
- def rails_app_path(version)
5
- File.join(File.dirname(__FILE__), "..", "tmp", "rails_#{version.gsub(".", "_")}_app")
6
- end
7
-
8
- def gemfile_path(version)
9
- File.join(File.dirname(__FILE__), "..", "gemfiles", "rails-#{version}")
10
- end
11
-
12
- def vendor_path(version)
13
- File.expand_path("vendor/bundle", rails_app_path(version))
14
- end
15
-
16
- def rails_template_path
17
- File.join(File.dirname(__FILE__), "..", "spec", "rails_template")
18
- end
19
-
20
- task :run_with_rails => [:set_gemfile, :generate_rails_app, :setup_rails_app, :run]
21
-
22
- task :set_gemfile do
23
- version = ENV['VERSION']
24
-
25
- ENV['BUNDLE_PATH'] = vendor_path(version)
26
- ENV['BUNDLE_GEMFILE'] = gemfile_path(version)
27
-
28
- unless File.exist?(ENV['BUNDLE_PATH'])
29
- puts "Installing gems for Rails #{version} (this will only be done once)..."
30
- system("bundle install #{ENV['BUNDLE_ARGS']}") || exit(1)
31
- end
32
- end
33
-
34
- task :generate_rails_app do
35
- version = ENV['VERSION']
36
- app_path = rails_app_path(version)
37
-
38
- unless File.exist?(File.expand_path("config/environment.rb", app_path))
39
- rails_cmd = "bundle exec rails _#{version}_"
40
-
41
- puts "Generating Rails #{version} application..."
42
- if version.start_with?("2")
43
- system("#{rails_cmd} \"#{app_path}\" --force") || exit(1)
44
- elsif version.start_with?("3")
45
- system("#{rails_cmd} new \"#{app_path}\" --force --skip-git --skip-javascript --skip-gemfile --skip-sprockets") || exit(1)
46
- end
47
- end
48
- end
49
-
50
- task :setup_rails_app do
51
- version = ENV['VERSION']
52
- app_path = rails_app_path(version)
53
-
54
- FileUtils.cp_r File.join(rails_template_path, "."), app_path
55
- end
56
-
57
- task :run do
58
- version = ENV['VERSION']
59
-
60
- ENV['BUNDLE_GEMFILE'] = gemfile_path(version)
61
- ENV['RAILS_ROOT'] = rails_app_path(version)
62
-
63
- spec_command = if version.start_with?("2")
64
- "spec"
65
- elsif version.start_with?("3")
66
- "rspec"
67
- end
68
-
69
- system "bundle exec #{spec_command} #{ENV['SPEC'] || 'spec/*_spec.rb'} --color"
70
- end
71
- end
72
-
73
- def rails_all_versions
74
- versions = []
75
- Dir.glob(File.join(File.dirname(__FILE__), "..", "gemfiles", "rails-*")).each do |gemfile|
76
- if !gemfile.end_with?(".lock") && gemfile =~ /rails-([0-9.]+)/
77
- versions << $1
78
- end
79
- end
80
-
81
- versions
82
- end
83
-
84
- def reenable_spec_tasks
85
- Rake::Task.tasks.each do |task|
86
- if task.name =~ /spec:/
87
- task.reenable
88
- end
89
- end
90
- end
91
-
92
- desc 'Run spec suite in all Rails versions'
93
- task :spec do
94
- versions = if ENV['RAILS']
95
- ENV['RAILS'].split(",")
96
- else
97
- rails_all_versions
98
- end
99
-
100
- versions.each do |version|
101
- puts "Running specs against Rails #{version}..."
102
-
103
- ENV['VERSION'] = version
104
- reenable_spec_tasks
105
- Rake::Task['spec:run_with_rails'].invoke
106
- end
107
- end