ar_indexer 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b173a0feed66c6dfa32f17b624840e9aced0285
4
- data.tar.gz: 5a2776b09548c4c613bea0d76e592a3ccdc07b8e
3
+ metadata.gz: 06d3b7cfd6f1d545f8bb47c950cbd14f148224a1
4
+ data.tar.gz: 358a8b4859a711ced901b4b0785552ca31f9daa3
5
5
  SHA512:
6
- metadata.gz: 3938da4be83743a63650910f5951089fa9b7a15ab8c06623117bf2bbdb3cb4d4c7ed4feb6fc8937600ce1d4b070d361ed93101ef25dbb2c51425bb64796c3294
7
- data.tar.gz: d8867a7a3d5a46566ba453cd078883a5114180152362bd3560649b6743e8cc010c12b1d198d04e83f35d1b891f19dae3712ce63a878c3e82602611e9bf5500a3
6
+ metadata.gz: da10fc54a73d8e852c0353cb84837b2a82d013c328ffeda856a30894c1b83c30af14ba8ad6df5dc7c95e1bdcde834fa328c01e201da229ce599d0a4f68bc1dcf
7
+ data.tar.gz: 3ebcac08504288bb2c8ae7f4a20c6fb221d028df2e2eacec2a1d42c14ccdf40bf421f9387ee18baf0b013dec647d8c05e52698e86c498f85f2f027519d9a69ec
data/README.md CHANGED
@@ -51,7 +51,7 @@ Have an ActiveRecord model? Want to index some text for searching? Just add the
51
51
  }
52
52
  )
53
53
 
54
- At this point, ARIndexer will build and maintain a reverse index for each record under these models.
54
+ At this point, ARIndexer will build and maintain a reverse index for each record under these models. If you need to reindex the object at any time, the instance methods `reindex_object`, `reindex_fields`, and `reindex_associations` are added to all ActiveRecord objects with `has_reverse_index` declared.
55
55
 
56
56
  ###Searching###
57
57
 
data/ar_indexer.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |spec|
2
2
  # Basic Gem Description
3
3
  spec.name = "ar_indexer"
4
- spec.version = "0.2.0"
4
+ spec.version = "0.2.1"
5
5
  spec.date = "2014-10-06"
6
6
  spec.summary = "Allows for reverse indexing selected ActiveRecord models. Handles searching and return of objects"
7
7
  spec.description = spec.summary
data/lib/ar_indexer.rb CHANGED
@@ -17,7 +17,7 @@ module ARIndexer
17
17
  module Version
18
18
  MAJOR = '0'
19
19
  MINOR = '2'
20
- BUILD = '0'
20
+ BUILD = '1'
21
21
 
22
22
  STRING = "#{MAJOR}.#{MINOR}.#{BUILD}"
23
23
  end
@@ -34,6 +34,29 @@ module ARIndexer
34
34
  module_function :has_reverse_index
35
35
 
36
36
  module InstanceMethods
37
+ def reindex_object
38
+ values_to_index = ar_indexer_get_indexable_values
39
+ values_to_index.each do |field_name, value|
40
+ Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, false)
41
+ end
42
+ end
43
+
44
+ def reindex_fields
45
+ values_to_index = ar_indexer_get_indexable_values
46
+ values_to_index.delete_if {|key, value| self.indexed_associations.keys.map{|field| field.to_s}.include?(key)}
47
+ values_to_index.each do |field_name, value|
48
+ Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, false)
49
+ end
50
+ end
51
+
52
+ def reindex_associations
53
+ values_to_index = ar_indexer_get_indexable_values
54
+ values_to_index.delete_if {|key, value| self.indexed_fields.map{|field| field.to_s}.include?(key)}
55
+ values_to_index.each do |field_name, value|
56
+ Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, false)
57
+ end
58
+ end
59
+
37
60
  private
38
61
 
39
62
  def ar_indexer_get_indexable_values
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_indexer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh MacLachlan