pose 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -31,7 +31,7 @@ Pose ("Polymorphic Search") allows fulltext search for ActiveRecord objects.
31
31
  * _pose_assignments_: lists which word occurs in which document.
32
32
 
33
33
 
34
- # Make your ActiveRecord models searchable.
34
+ # Make your ActiveRecord models searchable
35
35
 
36
36
  class MyClass < ActiveRecord::Base
37
37
 
@@ -54,14 +54,29 @@ Pose ("Polymorphic Search") allows fulltext search for ActiveRecord objects.
54
54
  end
55
55
 
56
56
 
57
- # Maintain the search index.
57
+ # Maintain the search index
58
58
 
59
59
  The search index is automatically updated when Objects are saved or deleted.
60
- To add existing records in the database without having to save them again,
61
- or recreate the search index, please run
60
+
61
+ ## Indexing existing objects in the database
62
+ If you had existing data in your database before adding Pose, it isn't automatically included in the search index.
63
+ They will be added on the next save/update operation on them.
64
+ You can also manually add existing objects to the search index.
62
65
 
63
66
  rake pose:reindex_all[MyClass]
64
67
 
68
+ ## Optimizing the search index
69
+ The search index keeps all the words that were ever used around, in order to try to reuse them in the future.
70
+ If you deleted a lot of objects, you can shrink the memory consumption of the search index by removing unused words.
71
+
72
+ rake pose:cleanup_index
73
+
74
+ ## Removing the search index
75
+ For development purposes, or if something went wrong, you can remove the search index for a class
76
+ (let's call it "MyClass") completely.
77
+
78
+ rake pose:delete_index[MyClass]
79
+
65
80
 
66
81
  # Perform a search
67
82
 
@@ -92,4 +107,6 @@ Or, clone the repository, make your changes, and submit a pull request.
92
107
 
93
108
  ## Road Map
94
109
 
95
- * make Pose work with NoSQL databases like MongoDB, Redis
110
+ Pose's algorithm works with all sorts of storage technologies that support range queries, i.e. relational databases,
111
+ Google's DataStore, and other NoSQL stores. Right now, only relational databases are supported. NoSQL support is easy,
112
+ but not yet implemented.
data/lib/pose/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pose
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
data/lib/pose.rb CHANGED
@@ -143,8 +143,8 @@ module Pose
143
143
  current_word_classes_and_ids = {}
144
144
  classes.each { |clazz| current_word_classes_and_ids[clazz.name] = [] }
145
145
  query = PoseAssignment.joins(:pose_word) \
146
- .where(:pose_words => {:text.matches => "#{query_word}%"},
147
- :posable_type => classes_names)
146
+ .where('pose_words.text LIKE ?', "#{query_word}%") \
147
+ .where('posable_type IN (?)', classes_names)
148
148
  query.each do |pose_assignment|
149
149
  current_word_classes_and_ids[pose_assignment.posable_type] << pose_assignment.posable_id
150
150
  end
data/spec/spec_helper.rb CHANGED
@@ -10,7 +10,6 @@ require 'pose_word.rb'
10
10
  require 'pose_assignment.rb'
11
11
  require "pose/posifier.rb"
12
12
  require 'active_support/core_ext/string'
13
- require 'meta_where'
14
13
  require 'faker'
15
14
  require 'factory_girl'
16
15
  FactoryGirl.find_definitions
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: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-16 00:00:00.000000000Z
12
+ date: 2012-02-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70232069265400 !ruby/object:Gem::Requirement
16
+ requirement: &70098607772640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70232069265400
25
- - !ruby/object:Gem::Dependency
26
- name: meta_where
27
- requirement: &70232069411660 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70232069411660
24
+ version_requirements: *70098607772640
36
25
  - !ruby/object:Gem::Dependency
37
26
  name: rake
38
- requirement: &70232069411200 !ruby/object:Gem::Requirement
27
+ requirement: &70098607771600 !ruby/object:Gem::Requirement
39
28
  none: false
40
29
  requirements:
41
30
  - - ! '>='
@@ -43,10 +32,10 @@ dependencies:
43
32
  version: '0'
44
33
  type: :runtime
45
34
  prerelease: false
46
- version_requirements: *70232069411200
35
+ version_requirements: *70098607771600
47
36
  - !ruby/object:Gem::Dependency
48
37
  name: ruby-progressbar
49
- requirement: &70232069410780 !ruby/object:Gem::Requirement
38
+ requirement: &70098607770820 !ruby/object:Gem::Requirement
50
39
  none: false
51
40
  requirements:
52
41
  - - ! '>='
@@ -54,10 +43,10 @@ dependencies:
54
43
  version: '0'
55
44
  type: :runtime
56
45
  prerelease: false
57
- version_requirements: *70232069410780
46
+ version_requirements: *70098607770820
58
47
  - !ruby/object:Gem::Dependency
59
48
  name: factory_girl
60
- requirement: &70232069410360 !ruby/object:Gem::Requirement
49
+ requirement: &70098607763940 !ruby/object:Gem::Requirement
61
50
  none: false
62
51
  requirements:
63
52
  - - ! '>='
@@ -65,10 +54,10 @@ dependencies:
65
54
  version: '0'
66
55
  type: :development
67
56
  prerelease: false
68
- version_requirements: *70232069410360
57
+ version_requirements: *70098607763940
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: faker
71
- requirement: &70232069409940 !ruby/object:Gem::Requirement
60
+ requirement: &70098607763140 !ruby/object:Gem::Requirement
72
61
  none: false
73
62
  requirements:
74
63
  - - ! '>='
@@ -76,10 +65,10 @@ dependencies:
76
65
  version: '0'
77
66
  type: :development
78
67
  prerelease: false
79
- version_requirements: *70232069409940
68
+ version_requirements: *70098607763140
80
69
  - !ruby/object:Gem::Dependency
81
70
  name: hashie
82
- requirement: &70232069409520 !ruby/object:Gem::Requirement
71
+ requirement: &70098607762500 !ruby/object:Gem::Requirement
83
72
  none: false
84
73
  requirements:
85
74
  - - ! '>='
@@ -87,10 +76,10 @@ dependencies:
87
76
  version: '0'
88
77
  type: :development
89
78
  prerelease: false
90
- version_requirements: *70232069409520
79
+ version_requirements: *70098607762500
91
80
  - !ruby/object:Gem::Dependency
92
81
  name: rspec
93
- requirement: &70232069409100 !ruby/object:Gem::Requirement
82
+ requirement: &70098607761540 !ruby/object:Gem::Requirement
94
83
  none: false
95
84
  requirements:
96
85
  - - ! '>='
@@ -98,10 +87,10 @@ dependencies:
98
87
  version: '0'
99
88
  type: :development
100
89
  prerelease: false
101
- version_requirements: *70232069409100
90
+ version_requirements: *70098607761540
102
91
  - !ruby/object:Gem::Dependency
103
92
  name: sqlite3
104
- requirement: &70232069408680 !ruby/object:Gem::Requirement
93
+ requirement: &70098607760440 !ruby/object:Gem::Requirement
105
94
  none: false
106
95
  requirements:
107
96
  - - ! '>='
@@ -109,7 +98,7 @@ dependencies:
109
98
  version: '0'
110
99
  type: :development
111
100
  prerelease: false
112
- version_requirements: *70232069408680
101
+ version_requirements: *70098607760440
113
102
  description: Pose ('Polymorphic Search') allows fulltext search for ActiveRecord objects.
114
103
  email:
115
104
  - kevin.goslar@gmail.com
@@ -173,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
162
  version: '0'
174
163
  requirements: []
175
164
  rubyforge_project:
176
- rubygems_version: 1.8.12
165
+ rubygems_version: 1.8.10
177
166
  signing_key:
178
167
  specification_version: 3
179
168
  summary: A polymorphic, storage-system independent search engine for Ruby on Rails.
@@ -183,4 +172,3 @@ test_files:
183
172
  - spec/pose_spec.rb
184
173
  - spec/pose_word_spec.rb
185
174
  - spec/spec_helper.rb
186
- has_rdoc: