pose 0.2 → 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.
data/README.markdown CHANGED
@@ -89,3 +89,7 @@ Or, clone the repository, make your changes, and submit a pull request.
89
89
  ## Unit Tests
90
90
 
91
91
  rake spec
92
+
93
+ ## Road Map
94
+
95
+ * make Pose work with NoSQL databases like MongoDB, Redis
data/lib/pose/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pose
2
- VERSION = "0.2"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -4,13 +4,14 @@ class PoseAssignment < ActiveRecord::Base
4
4
  belongs_to :posable, :polymorphic => true
5
5
 
6
6
  # Removes all PoseAssignments for the given class.
7
- def self.cleanup_class_index clazz
7
+ def self.delete_class_index clazz
8
8
  PoseAssignment.delete_all(['posable_type=?', clazz.name])
9
9
  end
10
10
 
11
11
  # Removes all PoseAssignments that aren't used anymore.
12
- def self.cleanup_orphaned_pose_assignments
12
+ def self.cleanup_orphaned_pose_assignments progress_bar = nil
13
13
  PoseAssignment.find_each(:include => [:posable, :pose_word], :batch_size => 5000) do |assignment|
14
+ progress_bar.inc if progress_bar
14
15
 
15
16
  # Delete the assignment if the posable object no longer exists.
16
17
  if assignment.posable.nil?
data/lib/pose_word.rb CHANGED
@@ -2,12 +2,10 @@
2
2
  class PoseWord < ActiveRecord::Base
3
3
  has_many :pose_assignments
4
4
 
5
- def self.remove_unused_words
5
+ def self.remove_unused_words progress_bar = nil
6
6
  PoseWord.find_each(:include => [:pose_assignments], :batch_size => 5000) do |pose_word|
7
- if pose_word.pose_assignments.size == 0
8
- pose_word.delete
9
- next
10
- end
7
+ pose_word.delete if pose_word.pose_assignments.size == 0
8
+ progress_bar.inc if progress_bar
11
9
  end
12
10
  end
13
11
  end
@@ -1,6 +1,27 @@
1
1
  include Rake::DSL
2
2
  namespace :pose do
3
3
 
4
+ desc "Cleans out unused data from the search index."
5
+ task :cleanup_index => :environment do |t, args|
6
+ puts "Cleaning Pose search index ...\n\n"
7
+ progress_bar = ProgressBar.new ' assignments', PoseAssignment.count
8
+ PoseAssignment.cleanup_orphaned_pose_assignments progress_bar
9
+ progress_bar.finish
10
+
11
+ progress_bar = ProgressBar.new ' words', PoseWord.count
12
+ PoseWord.remove_unused_words progress_bar
13
+ progress_bar.finish
14
+
15
+ puts "\nPose search index cleanup complete.\n\n"
16
+ end
17
+
18
+ desc "Removes the search index for all instances of the given classes."
19
+ task :delete_index, [:class_name] => :environment do |t, args|
20
+ clazz = Kernel.const_get args.class_name
21
+ PoseAssignment.cleanup_class_index clazz
22
+ puts "Search index for class #{clazz.name} deleted.\n\n"
23
+ end
24
+
4
25
  desc "Deletes and recreates the search index for all instances of the given class."
5
26
  task :reindex_all, [:class_name] => [:environment] do |t, args|
6
27
  clazz = Kernel.const_get args.class_name
@@ -12,10 +33,4 @@ namespace :pose do
12
33
  progress_bar.finish
13
34
  end
14
35
 
15
- desc "Removes the search index for all instances of the given classes."
16
- task :remove_from_index, [:class_name] => :environment do |t, args|
17
- clazz = Kernel.const_get args.class_name
18
- PoseAssignment.cleanup_class_index clazz
19
- puts "Search index for class #{clazz.name} deleted.\n\n"
20
- end
21
36
  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: '0.2'
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70285165402800 !ruby/object:Gem::Requirement
16
+ requirement: &70112891755440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70285165402800
24
+ version_requirements: *70112891755440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: meta_where
27
- requirement: &70285165402380 !ruby/object:Gem::Requirement
27
+ requirement: &70112891751560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70285165402380
35
+ version_requirements: *70112891751560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70285165401920 !ruby/object:Gem::Requirement
38
+ requirement: &70112891747180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70285165401920
46
+ version_requirements: *70112891747180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: ruby-progressbar
49
- requirement: &70285165401500 !ruby/object:Gem::Requirement
49
+ requirement: &70112891743860 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70285165401500
57
+ version_requirements: *70112891743860
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: factory_girl
60
- requirement: &70285165401080 !ruby/object:Gem::Requirement
60
+ requirement: &70112891738440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70285165401080
68
+ version_requirements: *70112891738440
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faker
71
- requirement: &70285165400660 !ruby/object:Gem::Requirement
71
+ requirement: &70112891722760 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70285165400660
79
+ version_requirements: *70112891722760
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: hashie
82
- requirement: &70285165400240 !ruby/object:Gem::Requirement
82
+ requirement: &70112891711480 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70285165400240
90
+ version_requirements: *70112891711480
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec
93
- requirement: &70285165399820 !ruby/object:Gem::Requirement
93
+ requirement: &70112891703760 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70285165399820
101
+ version_requirements: *70112891703760
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: sqlite3
104
- requirement: &70285165399400 !ruby/object:Gem::Requirement
104
+ requirement: &70112891696280 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70285165399400
112
+ version_requirements: *70112891696280
113
113
  description: Pose ('Polymorphic Search') allows fulltext search for ActiveRecord objects.
114
114
  email:
115
115
  - kevin.goslar@gmail.com