pose 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -11,9 +11,9 @@ Pose ("Polymorphic Search") allows fulltext search for ActiveRecord objects in
11
11
  * The search is very fast, doing only simple queries over fully indexed columns.
12
12
 
13
13
 
14
- # Installation
14
+ ## Installation
15
15
 
16
- ## Set up the gem.
16
+ ### Set up the gem.
17
17
 
18
18
  Add the gem to your Gemfile and run `bundle install`
19
19
 
@@ -21,7 +21,7 @@ Add the gem to your Gemfile and run `bundle install`
21
21
  gem 'pose'
22
22
  ```
23
23
 
24
- ## Create the database tables for pose.
24
+ ### Create the database tables for pose.
25
25
 
26
26
  ```bash
27
27
  $ rails generate pose:install
@@ -34,7 +34,7 @@ Pose creates two tables in your database. These tables are automatically populat
34
34
  * _pose_assignments_: lists which word occurs in which document.
35
35
 
36
36
 
37
- ## Make your ActiveRecord models searchable
37
+ ### Make your ActiveRecord models searchable
38
38
 
39
39
  ```ruby
40
40
  class MyClass < ActiveRecord::Base
@@ -60,7 +60,7 @@ not only data from this object, but also data from related objects, class names,
60
60
  Now that this class is posified, any `create`, `update`, or `delete` operation on any instance of this class will update the search index automatically.
61
61
 
62
62
 
63
- ## Index existing records in your database
63
+ ### Index existing records in your database
64
64
 
65
65
  Data that existed in your database before adding Pose isn't automatically included in the search index.
66
66
  You have to index those records manually once. Future updates will happen automatically.
@@ -70,7 +70,7 @@ To index all entries of `MyClass`, run `rake pose:reindex_all[MyClass]` on the c
70
70
  At this point, you are all set up. Let's perform a search!
71
71
 
72
72
 
73
- # Searching
73
+ ## Searching
74
74
 
75
75
  To search, simply call Pose's `search` method, and tell it the search query as well as in which classes it should search.
76
76
 
@@ -135,13 +135,13 @@ result = Pose.search 'foo', MyClass, where: [ public: true, ['user_id <> ?', @cu
135
135
  ```
136
136
 
137
137
 
138
- # Maintenance
138
+ ## Maintenance
139
139
 
140
140
  Besides an accasional search index cleanup, Pose is relatively maintenance free.
141
141
  The search index is automatically updated when objects are created, updated, or deleted.
142
142
 
143
143
 
144
- ## Optimizing the search index
144
+ ### Optimizing the search index
145
145
 
146
146
  For performance reasons, the search index keeps all the words that were ever used around, in order to try to reuse them as much as possible.
147
147
  After deleting or changing a large number of objects, you can shrink the memory consumption of Pose's search index by
@@ -152,7 +152,7 @@ $ rake pose:index:vacuum
152
152
  ```
153
153
 
154
154
 
155
- ## Recreating the search index from scratch
155
+ ### Recreating the search index from scratch
156
156
  To index existing data in your database, or after loading additional data outside of ActiveRecord into your database,
157
157
  you should recreate the search index from scratch.
158
158
 
@@ -172,7 +172,7 @@ rails generate pose:remove
172
172
  Also don't forget to remove the `posify` block from your models as well as the gem entry from your Gemfile.
173
173
 
174
174
 
175
- # Use Pose in your tests
175
+ ## Use Pose in your tests
176
176
 
177
177
  By default, Pose doesn't run in Rails' `test` environment. This is to not slow down tests due to constant updating of the search index when objects are created.
178
178
  If you want to test your models search functionality, you need to enable searching in tests:
@@ -184,14 +184,13 @@ Pose::CONFIGURATION[:search_in_tests] = true
184
184
  Please don't forget to set this value to `false` when you are done, or your remaining tests will be slow. A good place to enable/disable this flag is in before/after blocks of your test cases.
185
185
 
186
186
 
187
- # Development
187
+ ## Development
188
188
 
189
189
  If you find a bug, have a question, or a better idea, please open an issue on the
190
190
  <a href="https://github.com/kevgo/pose/issues">Pose issue tracker</a>.
191
191
  Or, clone the repository, make your changes, and submit a pull request.
192
192
 
193
-
194
- ## Run the unit tests for the Pose Gem
193
+ ### Run the unit tests for the Pose Gem
195
194
 
196
195
  Pose uses Postgresql for tests, since it is the most strict database.
197
196
  To run tests, first, create a test database.
@@ -207,7 +206,7 @@ $ rake spec
207
206
  ```
208
207
 
209
208
 
210
- ## Road Map
209
+ ### Road Map
211
210
 
212
211
  * add `join` to search parameters
213
212
  * pagination of search results
@@ -0,0 +1,56 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Pose
5
+ module Generators
6
+
7
+ class InstallGenerator < Rails::Generators::Base
8
+ include Rails::Generators::Migration
9
+ source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
10
+
11
+ def create_migration_file
12
+ say ''
13
+ say ' Creating database migration for the Pose tables.'
14
+ say ''
15
+ migration_template 'install_migration.rb', 'db/migrate/install_pose.rb'
16
+ say ''
17
+ end
18
+
19
+ def installation_instructions
20
+ say ''
21
+ say ' All done! You need to do two things now:'
22
+ say ''
23
+ say ' 1. Run the database migration'
24
+ say ''
25
+ say ' rake db:migrate', Thor::Shell::Color::BOLD
26
+ say ''
27
+ say ''
28
+ say ' 2. Add a posify block to all your models.'
29
+ say ' Here is an example:'
30
+ say ''
31
+ say ' class MyClass < ActiveRecord::Base'
32
+ say ' ...'
33
+ say ''
34
+ say ' posify do', Thor::Shell::Color::BOLD
35
+ say ' # return searchable text as a string here', Thor::Shell::Color::BOLD
36
+ say ' end', Thor::Shell::Color::BOLD
37
+ say ''
38
+ say ' ...'
39
+ say ' end'
40
+ say ''
41
+ say ''
42
+ say ' Happy searching! :)'
43
+ say ''
44
+ end
45
+
46
+
47
+ private
48
+
49
+ # Helper method for creating the migration.
50
+ def self.next_migration_number(path)
51
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
52
+ end
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,56 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Pose
5
+ module Generators
6
+
7
+ class RemoveGenerator < Rails::Generators::Base
8
+ include Rails::Generators::Migration
9
+ source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
10
+
11
+ def create_migration_file
12
+ say ''
13
+ say ' Creating database migration to remove the Pose tables.'
14
+ say ''
15
+ migration_template 'remove_migration.rb', 'db/migrate/remove_pose.rb'
16
+ say ''
17
+ end
18
+
19
+ def installation_instructions
20
+ say ''
21
+ say ' All done! You need to do two things now:'
22
+ say ''
23
+ say ' 1. Run the database migration to remove the tables from your database.'
24
+ say ''
25
+ say ' rake db:migrate', Thor::Shell::Color::BOLD
26
+ say ''
27
+ say ''
28
+ say ' 2. Remove the posify block from all your models.'
29
+ say ' Here is how it looks like:'
30
+ say ''
31
+ say ' class MyClass < ActiveRecord::Base'
32
+ say ' ...'
33
+ say ''
34
+ say ' posify do', Thor::Shell::Color::BOLD
35
+ say ' ...', Thor::Shell::Color::BOLD
36
+ say ' end', Thor::Shell::Color::BOLD
37
+ say ''
38
+ say ' ...'
39
+ say ' end'
40
+ say ''
41
+ say ''
42
+ say ' Have an excellent day! :)'
43
+ say ''
44
+ end
45
+
46
+
47
+ private
48
+
49
+ # Helper method for creating the migration.
50
+ def self.next_migration_number(path)
51
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
52
+ end
53
+ end
54
+
55
+ end
56
+ end
data/lib/pose/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pose
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -197,10 +197,10 @@ files:
197
197
  - doc/PoseMigrations.html
198
198
  - doc/PoseWord.html
199
199
  - doc/top-level-namespace.html
200
- - lib/generators/pose_generator.rb
201
- - lib/generators/remove_pose_generator.rb
202
- - lib/generators/templates/add_migration.rb
203
- - lib/generators/templates/remove_migration.rb
200
+ - lib/generators/pose/install/install_generator.rb
201
+ - lib/generators/pose/install/templates/install_migration.rb
202
+ - lib/generators/pose/remove/remove_generator.rb
203
+ - lib/generators/pose/remove/templates/remove_migration.rb
204
204
  - lib/pose/activerecord_base_additions.rb
205
205
  - lib/pose/internal_helpers.rb
206
206
  - lib/pose/model_additions.rb
@@ -210,10 +210,6 @@ files:
210
210
  - lib/pose/static_api.rb
211
211
  - lib/pose/version.rb
212
212
  - lib/pose.rb
213
- - lib/rails/generators/pose/pose_generator.rb
214
- - lib/rails/generators/pose/remove_pose_generator.rb
215
- - lib/rails/generators/templates/add_migration.rb
216
- - lib/rails/generators/templates/remove_migration.rb
217
213
  - lib/tasks/pose_tasks.rake
218
214
  - MIT-LICENSE
219
215
  - Rakefile
@@ -1,19 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/migration'
3
-
4
- module Pose
5
-
6
- class InstallGenerator < Rails::Generators::Base
7
- include Rails::Generators::Migration
8
- source_root File.expand_path('../templates', __FILE__)
9
-
10
- def create_migration_file
11
- migration_template 'add_migration.rb', 'db/migrate/add_pose.rb'
12
- end
13
-
14
- def self.next_migration_number(path)
15
- Time.now.utc.strftime("%Y%m%d%H%M%S")
16
- end
17
- end
18
-
19
- end
@@ -1,19 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/migration'
3
-
4
- module Pose
5
-
6
- class RemoveGenerator < Rails::Generators::Base
7
- include Rails::Generators::Migration
8
- source_root File.expand_path('../templates', __FILE__)
9
-
10
- def create_migration_file
11
- migration_template 'remove_migration.rb', 'db/migrate/remove_pose.rb'
12
- end
13
-
14
- def self.next_migration_number(path)
15
- Time.now.utc.strftime("%Y%m%d%H%M%S")
16
- end
17
- end
18
-
19
- end
@@ -1,21 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/migration'
3
-
4
- module Pose
5
- module Generators
6
-
7
- class InstallGenerator < Rails::Generators::Base
8
- include Rails::Generators::Migration
9
- source_root File.expand_path('../templates', __FILE__)
10
-
11
- def create_migration_file
12
- migration_template 'add_migration.rb', 'db/migrate/add_pose.rb'
13
- end
14
-
15
- def self.next_migration_number(path)
16
- Time.now.utc.strftime("%Y%m%d%H%M%S")
17
- end
18
- end
19
-
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/migration'
3
-
4
- module Pose
5
- module Generators
6
-
7
- class RemoveGenerator < Rails::Generators::Base
8
- include Rails::Generators::Migration
9
- source_root File.expand_path('../templates', __FILE__)
10
-
11
- def create_migration_file
12
- migration_template 'remove_migration.rb', 'db/migrate/remove_pose.rb'
13
- end
14
-
15
- def self.next_migration_number(path)
16
- Time.now.utc.strftime("%Y%m%d%H%M%S")
17
- end
18
- end
19
-
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- class AddPoseTables < ActiveRecord::Migration
2
-
3
- def self.up
4
- create_table "pose_assignments" do |t|
5
- t.integer "pose_word_id", null: false
6
- t.integer "posable_id", null: false
7
- t.string "posable_type", limit: 40, null: false
8
- end
9
-
10
- add_index "pose_assignments", :pose_word_id
11
- add_index "pose_assignments", :posable_id
12
-
13
- create_table "pose_words" do |t|
14
- t.string "text", limit: 80, null: false
15
- end
16
-
17
- add_index "pose_words", :text
18
- end
19
-
20
- def self.down
21
- drop_table 'pose_assignments'
22
- drop_table 'pose_words'
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- class AddPoseTables < ActiveRecord::Migration
2
-
3
- def self.up
4
- drop_table 'pose_assignments'
5
- drop_table 'pose_words'
6
- end
7
-
8
- def self.down
9
- create_table "pose_assignments" do |t|
10
- t.integer "pose_word_id", null: false
11
- t.integer "posable_id", null: false
12
- t.string "posable_type", limit: 40, null: false
13
- end
14
-
15
- add_index "pose_assignments", :pose_word_id
16
- add_index "pose_assignments", :posable_id
17
-
18
- create_table "pose_words" do |t|
19
- t.string "text", limit: 80, null: false
20
- end
21
-
22
- add_index "pose_words", :text
23
- end
24
- end
25
-