acts_as_indexed 0.8.0 → 0.8.1

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/CHANGELOG CHANGED
@@ -1,13 +1,16 @@
1
- ===0.8.0
2
- - Fixed bug where intentianal hyphenation was treated as a negative query. Fixes #31.
1
+ ===0.8.1 [21 December 2012]
2
+ - Fixed bug where record count was not correctly updated on bulk add. [phurni - Pascal Hurni]
3
+
4
+ ===0.8.0 [20 December 2012]
5
+ - Fixed bug where intentional hyphenation was treated as a negative query. Fixes #31.
3
6
  - Fixed bug where will_paginate_search was not being required. Fixes #23.
4
7
  - Fixed bug where quoted phrases were matched across field boundaries. [novalis - David Turner]
5
- - Fixed bug where records with indentical match-rankings were returned in different orders under different ruby implementations.
8
+ - Fixed bug where records with indentical match-rankings were returned in different orders under different Ruby implementations.
6
9
  - Storage is now process and thread-safe. Fixes issue #34. [rsamoilov - Roman Samoilov]
7
10
  - Added configuration option to force is-Windows mode for storage. Fixes issues #32, #39.
8
- - Added multiple Gemfiles for TravisCI. https://travis-ci.org/dougal/acts_as_indexed
11
+ - Added multiple Gemfiles for Travis CI. https://travis-ci.org/dougal/acts_as_indexed
9
12
  - Acts as Indexed can now be tested stand-alone without a generated Rails app.
10
- - ModelKlass.build_index is now a public method
13
+ - ModelKlass.build_index is now a public method.
11
14
 
12
15
  ===0.7.8 [14 March 2011]
13
16
  - Fixed bug with file renaming on Windows. Fixes issue #21. [gabynamiman - Gabriel Namiman]
@@ -186,6 +186,7 @@ bugfixes and features wouldn't have happened.
186
186
  * Gabriel Namiman
187
187
  * Roman Samoilov
188
188
  * David Turner
189
+ * Pascal Hurni
189
190
 
190
191
 
191
192
  == Unicode (UTF8) Support
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "acts_as_indexed"
8
- s.version = "0.8.0"
8
+ s.version = "0.8.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Douglas F Shearer"]
12
- s.date = "2012-12-20"
12
+ s.date = "2012-12-21"
13
13
  s.description = "Acts As Indexed is a plugin which provides a pain-free way to add fulltext search to your Ruby on Rails app"
14
14
  s.email = "dougal.s@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -26,15 +26,17 @@ module ActsAsIndexed #:nodoc:
26
26
  # Adds multiple records to the index. Accepts an array of +records+.
27
27
  def add_records(records)
28
28
  atoms = ActiveSupport::OrderedHash.new
29
+ records_count = 0
29
30
 
30
31
  records.each do |record|
31
32
  next unless @if_proc.call(record)
33
+ records_count += 1
32
34
 
33
35
  condensed_record = condense_record(record)
34
36
  atoms = add_occurences(condensed_record, record.id, atoms)
35
37
  end
36
38
 
37
- @storage.add(atoms)
39
+ @storage.add(atoms, records_count)
38
40
  end
39
41
 
40
42
  # Removes +record+ from the index.
@@ -15,10 +15,10 @@ module ActsAsIndexed #:nodoc:
15
15
  end
16
16
 
17
17
  # Takes a hash of atoms and adds these to storage.
18
- def add(atoms)
18
+ def add(atoms, count=1)
19
19
  operate(:+, atoms)
20
20
 
21
- update_record_count(1)
21
+ update_record_count(count)
22
22
  end
23
23
 
24
24
  # Takes a hash of atoms and removes these from storage.
@@ -52,8 +52,8 @@ class ActsAsIndexedTest < ActiveSupport::TestCase
52
52
  queries = {
53
53
  nil => [],
54
54
  '' => [],
55
- 'ship' => [5,6],
56
- 'crane' => [6,5],
55
+ 'ship' => [6,5],
56
+ 'crane' => [5,6],
57
57
  'foo' => [6],
58
58
  'foo ship' => [6],
59
59
  'ship foo' => [6]
@@ -104,17 +104,17 @@ class ActsAsIndexedTest < ActiveSupport::TestCase
104
104
 
105
105
  def test_start_queries
106
106
  queries = {
107
- 'ship ^crane' => [5,6],
108
- '^crane ship' => [5,6],
109
- '^ship ^crane' => [5,6],
110
- '^crane ^ship' => [5,6],
111
- '^ship crane' => [5,6],
112
- 'crane ^ship' => [5,6],
113
- '^crane' => [6,5] ,
114
- '^cran' => [6,5],
115
- '^cra' => [6,5],
116
- '^cr' => [6,4,5],
117
- '^c' => [5,2,1,3,6,4],
107
+ 'ship ^crane' => [6,5],
108
+ '^crane ship' => [6,5],
109
+ '^ship ^crane' => [6,5],
110
+ '^crane ^ship' => [6,5],
111
+ '^ship crane' => [6,5],
112
+ 'crane ^ship' => [6,5],
113
+ '^crane' => [5,6] ,
114
+ '^cran' => [5,6],
115
+ '^cra' => [5,6],
116
+ '^cr' => [4,5,6],
117
+ '^c' => [1,2,3,4,5,6],
118
118
  '^notthere' => []
119
119
  }
120
120
 
@@ -123,18 +123,18 @@ class ActsAsIndexedTest < ActiveSupport::TestCase
123
123
 
124
124
  def test_start_quoted_queries
125
125
  queries = {
126
- '^"crane" ship' => [5,6],
127
- 'ship ^"crane"' => [5,6],
126
+ '^"crane" ship' => [6,5],
127
+ 'ship ^"crane"' => [6,5],
128
128
  '^"crane ship"' => [5],
129
129
  '^"crane shi"' => [5],
130
130
  '^"crane sh"' => [5],
131
131
  '^"crane s"' => [5],
132
- '^"crane "' => [6,5],
133
- '^"crane"' => [6,5],
134
- '^"cran"' => [6,5],
135
- '^"cra"' => [6,5],
136
- '^"cr"' => [6,4,5],
137
- '^"c"' => [5,2,1,3,6,4],
132
+ '^"crane "' => [5,6],
133
+ '^"crane"' => [5,6],
134
+ '^"cran"' => [5,6],
135
+ '^"cra"' => [5,6],
136
+ '^"cr"' => [4,5,6],
137
+ '^"c"' => [1,2,3,4,5,6],
138
138
  }
139
139
 
140
140
  run_queries(queries)
@@ -146,16 +146,16 @@ class ActsAsIndexedTest < ActiveSupport::TestCase
146
146
  # The offending assertions are not run in CI as a result.
147
147
  def test_find_options
148
148
  # limit.
149
- assert_equal [6], Post.find_with_index('^cr', { :limit => 1 }, :ids_only => true)
150
- assert_equal [6], Post.find_with_index('^cr', { :limit => 1 }).map{ |r| r.id }
149
+ assert_equal [4], Post.find_with_index('^cr', { :limit => 1 }, :ids_only => true)
150
+ assert_equal [4], Post.find_with_index('^cr', { :limit => 1 }).map{ |r| r.id }
151
151
 
152
152
  # offset
153
- assert_equal [4,5], Post.find_with_index('^cr', { :offset => 1 }, :ids_only => true)
154
- assert_equal [4,5], Post.find_with_index('^cr', { :offset => 1 }).map{ |r| r.id }
153
+ assert_equal [5,6], Post.find_with_index('^cr', { :offset => 1 }, :ids_only => true)
154
+ assert_equal [5,6], Post.find_with_index('^cr', { :offset => 1 }).map{ |r| r.id }
155
155
 
156
156
  # limit and offset
157
- assert_equal [4], Post.find_with_index('^cr', { :limit => 1, :offset => 1 }, :ids_only => true)
158
- assert_equal [4], Post.find_with_index('^cr', { :limit => 1, :offset => 1 }).map{ |r| r.id }
157
+ assert_equal [5], Post.find_with_index('^cr', { :limit => 1, :offset => 1 }, :ids_only => true)
158
+ assert_equal [5], Post.find_with_index('^cr', { :limit => 1, :offset => 1 }).map{ |r| r.id }
159
159
 
160
160
  # order
161
161
  assert_equal [6,5,4,3,2,1], Post.find_with_index('^c', { :order => 'id desc' }).map{ |r| r.id }
@@ -11,9 +11,9 @@ class WillPaginateSearchTest < ActiveSupport::TestCase
11
11
 
12
12
  def test_paginate_search
13
13
 
14
- assert_equal [5,2,1,3,6,4], paginate_search(1, 10)
15
- assert_equal [5,2,1], paginate_search(1, 3)
16
- assert_equal [3,6,4], paginate_search(2, 3)
14
+ assert_equal [1,2,3,4,5,6], paginate_search(1, 10)
15
+ assert_equal [1,2,3], paginate_search(1, 3)
16
+ assert_equal [4,5,6], paginate_search(2, 3)
17
17
  end
18
18
 
19
19
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_indexed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-20 00:00:00.000000000 Z
12
+ date: 2012-12-21 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Acts As Indexed is a plugin which provides a pain-free way to add fulltext
15
15
  search to your Ruby on Rails app