ActsAsFastNestedSet 0.0.1 → 0.1.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/Rakefile +1 -0
- data/lib/acts_as_fast_nested_set.rb +24 -13
- metadata +12 -4
data/Rakefile
CHANGED
|
@@ -10,6 +10,7 @@ Hoe.new('ActsAsFastNestedSet', Adocca::Acts::ActsAsFastNestedSet::VERSION) do |p
|
|
|
10
10
|
p.summary = 'Fast nested set, really fast!'
|
|
11
11
|
# p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
|
12
12
|
# p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
|
|
13
|
+
p.extra_deps << ['AdoccaMemcache', '>= 0.1.0']
|
|
13
14
|
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
|
14
15
|
end
|
|
15
16
|
|
|
@@ -54,7 +54,7 @@ require 'active_record'
|
|
|
54
54
|
module Adocca
|
|
55
55
|
module Acts
|
|
56
56
|
module ActsAsFastNestedSet
|
|
57
|
-
VERSION = "0.
|
|
57
|
+
VERSION = "0.1.1"
|
|
58
58
|
|
|
59
59
|
def self.append_features(base)
|
|
60
60
|
super
|
|
@@ -89,6 +89,15 @@ module Adocca
|
|
|
89
89
|
end
|
|
90
90
|
set_options(options)
|
|
91
91
|
include Adocca::Acts::ActsAsFastNestedSet::InstanceMethods
|
|
92
|
+
descendant_invalidation_proc = Proc.new do |instance|
|
|
93
|
+
ob = instance.parent
|
|
94
|
+
while ob
|
|
95
|
+
expire_cached_value("#{self.name}:#{ob.id}:descendants")
|
|
96
|
+
ob = ob.parent
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
after_save descendant_invalidation_proc
|
|
100
|
+
after_destroy descendant_invalidation_proc
|
|
92
101
|
end
|
|
93
102
|
end
|
|
94
103
|
module SingletonMethods
|
|
@@ -127,19 +136,21 @@ module Adocca
|
|
|
127
136
|
# All our children and their children etc
|
|
128
137
|
#
|
|
129
138
|
def descendants
|
|
130
|
-
self.class.
|
|
131
|
-
|
|
132
|
-
|
|
139
|
+
cache_value("#{self.class.name}:#{self.id}:descendants") do
|
|
140
|
+
self.class.find(:all,
|
|
141
|
+
:conditions => ["node_id LIKE ? AND id != ?#{unique_with_and}",
|
|
142
|
+
"#{self.node_id}%", self.id] + unique_params)
|
|
143
|
+
end
|
|
133
144
|
end
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
145
|
+
|
|
146
|
+
def level
|
|
147
|
+
if self.node_id.nil?
|
|
148
|
+
1
|
|
149
|
+
else
|
|
150
|
+
self.node_id.count "."
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
143
154
|
private
|
|
144
155
|
|
|
145
156
|
def unique_statement
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
|
-
rubygems_version: 0.
|
|
2
|
+
rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: ActsAsFastNestedSet
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: 0.
|
|
7
|
-
date: 2006-11-
|
|
6
|
+
version: 0.1.1
|
|
7
|
+
date: 2006-11-27 00:00:00 +01:00
|
|
8
8
|
summary: Fast nested set, really fast!
|
|
9
9
|
require_paths:
|
|
10
10
|
- lib
|
|
@@ -25,7 +25,6 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
|
25
25
|
platform: ruby
|
|
26
26
|
signing_key:
|
|
27
27
|
cert_chain:
|
|
28
|
-
post_install_message:
|
|
29
28
|
authors:
|
|
30
29
|
- Ryan Davis
|
|
31
30
|
files:
|
|
@@ -58,3 +57,12 @@ dependencies:
|
|
|
58
57
|
- !ruby/object:Gem::Version
|
|
59
58
|
version: 1.1.4
|
|
60
59
|
version:
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: AdoccaMemcache
|
|
62
|
+
version_requirement:
|
|
63
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 0.1.0
|
|
68
|
+
version:
|