simple_nested_set 0.0.29 → 0.0.30

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.
@@ -16,7 +16,7 @@ module SimpleNestedSet
16
16
  after_save lambda { |r| r.nested_set.save! }
17
17
 
18
18
  belongs_to :parent, :class_name => self.name
19
- has_many :children, :foreign_key => :parent_id, :class_name => self.name
19
+ has_many :children, :foreign_key => :parent_id, :class_name => self.name, :order => :lft
20
20
 
21
21
  default_scope :order => :lft
22
22
 
@@ -28,4 +28,4 @@ module SimpleNestedSet
28
28
  included_modules.include?(SimpleNestedSet::InstanceMethods)
29
29
  end
30
30
  end
31
- end
31
+ end
@@ -36,7 +36,7 @@ module SimpleNestedSet
36
36
  end
37
37
 
38
38
  def move_by_parent_id?
39
- attributes.key?(:parent_id) && parent_id != node.parent_id
39
+ node.parent_id_changed?
40
40
  end
41
41
 
42
42
  def move_by_left_id
@@ -52,7 +52,7 @@ module SimpleNestedSet
52
52
  end
53
53
 
54
54
  def parent_id
55
- attributes[:parent_id].blank? ? nil : attributes[:parent_id].to_i
55
+ attributes[:parent_id] == 0 ? nil : attributes[:parent_id]
56
56
  end
57
57
 
58
58
  def left_id
@@ -71,7 +71,7 @@ module SimpleNestedSet
71
71
  when :child ; target.rgt
72
72
  when :left ; target.lft
73
73
  when :right ; target.rgt + 1
74
- when :root ; roots.empty? ? 1 : roots.last.rgt + 1
74
+ when :root ; roots.empty? ? 1 : roots.where('id <> ?', node.id).last.rgt + 1
75
75
  end
76
76
  bound > node.rgt ? bound - 1 : bound
77
77
  end
@@ -91,4 +91,4 @@ module SimpleNestedSet
91
91
  end
92
92
  end
93
93
  end
94
- end
94
+ end
@@ -25,7 +25,7 @@ module SimpleNestedSet
25
25
 
26
26
  def extract_attributes!(attributes)
27
27
  attributes.slice(*SimpleNestedSet::ATTRIBUTES).tap do
28
- attributes.except!(*(SimpleNestedSet::ATTRIBUTES - [:path]))
28
+ attributes.except!(*(SimpleNestedSet::ATTRIBUTES - [:path, :parent, :parent_id]))
29
29
  end if attributes.respond_to?(:slice)
30
30
  end
31
31
  end
@@ -40,14 +40,15 @@ module SimpleNestedSet
40
40
  end
41
41
 
42
42
  def save!
43
- attributes = node.instance_variable_get(:@_nested_set_attributes)
43
+ attributes = node.instance_variable_get(:@_nested_set_attributes) || {}
44
44
  node.instance_variable_set(:@_nested_set_attributes, nil)
45
+ attributes.merge!(:parent_id => node.parent_id) if node.parent_id_changed?
45
46
 
46
47
  if self.class.move_after_save
47
48
  move_by_attributes(attributes) unless attributes.blank?
48
49
  denormalize!
49
50
  elsif attributes
50
- attributes.each do |key, value|
51
+ attributes.except(:parent_id).each do |key, value|
51
52
  node.update_attribute(key, value)
52
53
  end
53
54
  end
@@ -100,7 +101,6 @@ module SimpleNestedSet
100
101
  def populate_associations(nodes)
101
102
  node.children.target = nodes.select do |child|
102
103
  next unless child.parent_id == node.id
103
- nodes.delete(child)
104
104
  child.nested_set.populate_associations(nodes)
105
105
  child.parent = node
106
106
  end
@@ -67,7 +67,7 @@ when '1.0.1'
67
67
  end
68
68
  end
69
69
  end
70
- when /2\.0\.[5-7]/
70
+ when /2\.0\.[5-9]/
71
71
  Gem.patching('arel', Arel::VERSION) do
72
72
  Arel::Table.class_eval do
73
73
  attr_reader :options # this line is added
@@ -1,3 +1,3 @@
1
1
  module SimpleNestedSet
2
- VERSION = "0.0.29"
2
+ VERSION = "0.0.30"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_nested_set
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 29
10
- version: 0.0.29
9
+ - 30
10
+ version: 0.0.30
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sven Fuchs
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-01-25 00:00:00 +01:00
19
+ date: 2011-02-23 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency