eb_nested_set 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -4
- data/Rakefile +2 -2
- data/init.rb +1 -1
- data/lib/eb_nested_set.rb +8 -4
- data/spec/db/test.sqlite3 +0 -0
- data/spec/nested_set_behavior.rb +9 -0
- data/spec/spec_helper.rb +2 -2
- metadata +18 -6
data/README.md
CHANGED
@@ -14,8 +14,8 @@ Edge:
|
|
14
14
|
|
15
15
|
From source:
|
16
16
|
|
17
|
-
git clone git://github.com/jnicklas/
|
18
|
-
cd
|
17
|
+
git clone git://github.com/jnicklas/eb_nested_set.git
|
18
|
+
cd eb_nested_set
|
19
19
|
rake install
|
20
20
|
|
21
21
|
If you're running Rails, just add it to your environment.rb file
|
@@ -24,7 +24,7 @@ If you're running Rails, just add it to your environment.rb file
|
|
24
24
|
|
25
25
|
You can also install it as a Rails plugin.
|
26
26
|
|
27
|
-
script/plugin install git://github.com/jnicklas/
|
27
|
+
script/plugin install git://github.com/jnicklas/eb_nested_set.git
|
28
28
|
|
29
29
|
## Contributing
|
30
30
|
|
@@ -72,7 +72,7 @@ or more conveniently:
|
|
72
72
|
|
73
73
|
Add these keys to your translation file:
|
74
74
|
|
75
|
-
|
75
|
+
eb_nested_set:
|
76
76
|
parent_not_in_scope: "nay, thy parent not be in scope {{scope_name}}"
|
77
77
|
illegal_nesting: "arr tis be illegal nesting"
|
78
78
|
|
data/Rakefile
CHANGED
@@ -6,10 +6,10 @@ require 'spec/rake/spectask'
|
|
6
6
|
require 'yard'
|
7
7
|
|
8
8
|
GEM = "eb_nested_set"
|
9
|
-
GEM_VERSION = "0.3.
|
9
|
+
GEM_VERSION = "0.3.8"
|
10
10
|
AUTHOR = "Jonas Nicklas"
|
11
11
|
EMAIL = "jonas.nicklas@gmail.com"
|
12
|
-
HOMEPAGE = "http://github.com/jnicklas/
|
12
|
+
HOMEPAGE = "http://github.com/jnicklas/eb_nested_set/tree/master"
|
13
13
|
SUMMARY = "A cool acts_as_nested_set alternative"
|
14
14
|
|
15
15
|
spec = Gem::Specification.new do |s|
|
data/init.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'lib', '
|
1
|
+
require File.join(File.dirname(__FILE__), 'lib', 'eb_nested_set')
|
data/lib/eb_nested_set.rb
CHANGED
@@ -33,8 +33,8 @@ module EvenBetterNestedSet
|
|
33
33
|
end
|
34
34
|
RUBY
|
35
35
|
|
36
|
-
named_scope :roots, :conditions => { :parent_id => nil }
|
37
|
-
has_many :children, :class_name => self.name, :foreign_key => :parent_id
|
36
|
+
named_scope :roots, :conditions => { :parent_id => nil }
|
37
|
+
has_many :children, :class_name => self.name, :foreign_key => :parent_id
|
38
38
|
belongs_to :parent, :class_name => self.name, :foreign_key => :parent_id
|
39
39
|
|
40
40
|
named_scope :descendants, lambda { |node|
|
@@ -182,6 +182,10 @@ module EvenBetterNestedSet
|
|
182
182
|
def root?
|
183
183
|
not parent_id?
|
184
184
|
end
|
185
|
+
|
186
|
+
def leaf?
|
187
|
+
(right - left) <= 1
|
188
|
+
end
|
185
189
|
|
186
190
|
##
|
187
191
|
# Checks if this node is a descendant of node
|
@@ -371,7 +375,7 @@ module EvenBetterNestedSet
|
|
371
375
|
|
372
376
|
def illegal_nesting
|
373
377
|
if parent_id? and family_ids.include?(parent_id)
|
374
|
-
errors.add(:parent_id, I18n.t('
|
378
|
+
errors.add(:parent_id, I18n.t('eb_nested_set.illegal_nesting', :default => 'cannot move node to its own descendant'))
|
375
379
|
end
|
376
380
|
end
|
377
381
|
|
@@ -456,7 +460,7 @@ module EvenBetterNestedSet
|
|
456
460
|
if self.class.nested_set_options[:scope] && parent_id
|
457
461
|
parent.reload # Make sure we are testing the record corresponding to the parent_id
|
458
462
|
if self.send(self.class.nested_set_options[:scope]) != parent.send(self.class.nested_set_options[:scope])
|
459
|
-
message = I18n.t('
|
463
|
+
message = I18n.t('eb_nested_set.parent_not_in_scope',
|
460
464
|
:default => "cannot be a record with a different {{scope_name}} to this record",
|
461
465
|
:scope_name => self.class.nested_set_options[:scope]
|
462
466
|
)
|
data/spec/db/test.sqlite3
CHANGED
Binary file
|
data/spec/nested_set_behavior.rb
CHANGED
@@ -402,6 +402,15 @@ describe "all nested set models", :shared => true do
|
|
402
402
|
end
|
403
403
|
end
|
404
404
|
|
405
|
+
describe "#leaf?" do
|
406
|
+
it "should be true if node doesn't have descendants" do
|
407
|
+
@r1.reload.should_not be_leaf
|
408
|
+
@r1c1.reload.should_not be_leaf
|
409
|
+
@r1c1s1.reload.should be_leaf
|
410
|
+
@r2c1.reload.should be_leaf
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
405
414
|
describe "#descendant_of(other_node)" do
|
406
415
|
it "should be true if other_node is an ancestor of node" do
|
407
416
|
reload_models @r1, @r1c2s2
|
data/spec/spec_helper.rb
CHANGED
@@ -14,13 +14,13 @@ dbconfig = case ENV["DB"]
|
|
14
14
|
when "postgresql"
|
15
15
|
{
|
16
16
|
:adapter => 'postgresql',
|
17
|
-
:database => '
|
17
|
+
:database => 'eb_nested_set_test',
|
18
18
|
:host => '127.0.0.1'
|
19
19
|
}
|
20
20
|
when "mysql"
|
21
21
|
{
|
22
22
|
:adapter => 'mysql',
|
23
|
-
:database => '
|
23
|
+
:database => 'eb_nested_set_test',
|
24
24
|
:host => '127.0.0.1'
|
25
25
|
}
|
26
26
|
else
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eb_nested_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 3
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 8
|
10
|
+
version: 0.3.8
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Jonas Nicklas
|
@@ -9,7 +15,7 @@ autorequire: eb_nested_set
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-06-30 00:00:00 +02:00
|
13
19
|
default_executable:
|
14
20
|
dependencies: []
|
15
21
|
|
@@ -34,7 +40,7 @@ files:
|
|
34
40
|
- spec/nested_set_behavior.rb
|
35
41
|
- spec/spec_helper.rb
|
36
42
|
has_rdoc: true
|
37
|
-
homepage: http://github.com/jnicklas/
|
43
|
+
homepage: http://github.com/jnicklas/eb_nested_set/tree/master
|
38
44
|
licenses: []
|
39
45
|
|
40
46
|
post_install_message:
|
@@ -43,21 +49,27 @@ rdoc_options: []
|
|
43
49
|
require_paths:
|
44
50
|
- lib
|
45
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
46
53
|
requirements:
|
47
54
|
- - ">="
|
48
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
49
59
|
version: "0"
|
50
|
-
version:
|
51
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
52
62
|
requirements:
|
53
63
|
- - ">="
|
54
64
|
- !ruby/object:Gem::Version
|
65
|
+
hash: 3
|
66
|
+
segments:
|
67
|
+
- 0
|
55
68
|
version: "0"
|
56
|
-
version:
|
57
69
|
requirements: []
|
58
70
|
|
59
71
|
rubyforge_project:
|
60
|
-
rubygems_version: 1.3.
|
72
|
+
rubygems_version: 1.3.7
|
61
73
|
signing_key:
|
62
74
|
specification_version: 3
|
63
75
|
summary: A cool acts_as_nested_set alternative
|