pose 0.2.3 → 0.2.4

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.
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: