awesome_nested_set 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -22,7 +22,8 @@ Jeweler::Tasks.new do |s|
22
22
  s.rdoc_options = ["--main", "README.rdoc", "--inline-source", "--line-numbers"]
23
23
  s.test_files = Dir['test/**/*.{yml,rb}']
24
24
  end
25
-
25
+ Jeweler::GemcutterTasks.new
26
+
26
27
  desc 'Default: run unit tests.'
27
28
  task :default => :test
28
29
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.2
1
+ 1.4.3
@@ -1,12 +1,15 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{awesome_nested_set}
5
- s.version = "1.4.2"
8
+ s.version = "1.4.3"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
11
  s.authors = ["Brandon Keepers", "Daniel Morrison"]
9
- s.date = %q{2009-09-08}
12
+ s.date = %q{2009-10-07}
10
13
  s.description = %q{An awesome nested set implementation for Active Record}
11
14
  s.email = %q{info@collectiveidea.com}
12
15
  s.extra_rdoc_files = [
@@ -38,7 +41,7 @@ Gem::Specification.new do |s|
38
41
  s.homepage = %q{http://github.com/collectiveidea/awesome_nested_set}
39
42
  s.rdoc_options = ["--main", "README.rdoc", "--inline-source", "--line-numbers"]
40
43
  s.require_paths = ["lib"]
41
- s.rubygems_version = %q{1.3.3}
44
+ s.rubygems_version = %q{1.3.5}
42
45
  s.summary = %q{An awesome nested set implementation for Active Record}
43
46
  s.test_files = [
44
47
  "test/db/database.yml",
@@ -60,16 +60,17 @@ module CollectiveIdea #:nodoc:
60
60
  extend Columns
61
61
  extend ClassMethods
62
62
 
63
- belongs_to :parent, :class_name => self.base_class.class_name,
63
+ belongs_to :parent, :class_name => self.base_class.to_s,
64
64
  :foreign_key => parent_column_name
65
- has_many :children, :class_name => self.base_class.class_name,
65
+ has_many :children, :class_name => self.base_class.to_s,
66
66
  :foreign_key => parent_column_name, :order => quoted_left_column_name
67
67
 
68
68
  attr_accessor :skip_before_destroy
69
69
 
70
70
  # no bulk assignment
71
- attr_protected left_column_name.intern,
72
- right_column_name.intern
71
+ if accessible_attributes.blank?
72
+ attr_protected left_column_name.intern, right_column_name.intern
73
+ end
73
74
 
74
75
  before_create :set_default_left_and_right
75
76
  before_save :store_new_parent
@@ -88,7 +89,7 @@ module CollectiveIdea #:nodoc:
88
89
  named_scope :roots, :conditions => {parent_column_name => nil}, :order => quoted_left_column_name
89
90
  named_scope :leaves, :conditions => "#{quoted_right_column_name} - #{quoted_left_column_name} = 1", :order => quoted_left_column_name
90
91
 
91
- define_callbacks("before_move", "after_move") if self.respond_to?(:define_callbacks)
92
+ define_callbacks("before_move", "after_move")
92
93
  end
93
94
 
94
95
  end
@@ -160,7 +161,7 @@ module CollectiveIdea #:nodoc:
160
161
  # Don't rebuild a valid tree.
161
162
  return true if valid?
162
163
 
163
- scope = lambda{}
164
+ scope = lambda{|node|}
164
165
  if acts_as_nested_set_options[:scope]
165
166
  scope = lambda{|node|
166
167
  scope_column_names.inject(""){|str, column_name|
@@ -442,7 +443,7 @@ module CollectiveIdea #:nodoc:
442
443
  end
443
444
 
444
445
  def store_new_parent
445
- @move_to_new_parent_id = parent_id_changed? ? parent_id : false
446
+ @move_to_new_parent_id = send("#{parent_column_name}_changed?") ? parent_id : false
446
447
  true # force callback to return true
447
448
  end
448
449
 
@@ -504,7 +505,7 @@ module CollectiveIdea #:nodoc:
504
505
 
505
506
  def move_to(target, position)
506
507
  raise ActiveRecord::ActiveRecordError, "You cannot move a new node" if self.new_record?
507
- return if callback(:before_move) == false
508
+ return if run_callbacks(:before_move) == false
508
509
  transaction do
509
510
  if target.is_a? self.class.base_class
510
511
  target.reload_nested_set
@@ -567,7 +568,7 @@ module CollectiveIdea #:nodoc:
567
568
  end
568
569
  target.reload_nested_set if target
569
570
  self.reload_nested_set
570
- callback(:after_move)
571
+ run_callbacks(:after_move)
571
572
  end
572
573
 
573
574
  end
@@ -11,6 +11,9 @@ class ScopedCategory < ActiveRecord::Base
11
11
  acts_as_nested_set :scope => :organization
12
12
  set_table_name 'categories'
13
13
  end
14
+ class RenamedColumns < ActiveRecord::Base
15
+ acts_as_nested_set :parent_column => 'mother_id', :left_column => 'red', :right_column => 'black'
16
+ end
14
17
 
15
18
  class AwesomeNestedSetTest < TestCaseClass
16
19
 
@@ -33,16 +36,28 @@ class AwesomeNestedSetTest < TestCaseClass
33
36
  def test_left_column_name
34
37
  assert_equal 'lft', Default.left_column_name
35
38
  assert_equal 'lft', Default.new.left_column_name
39
+ assert_equal 'red', RenamedColumns.left_column_name
40
+ assert_equal 'red', RenamedColumns.new.left_column_name
36
41
  end
37
-
42
+
38
43
  def test_right_column_name
39
44
  assert_equal 'rgt', Default.right_column_name
40
45
  assert_equal 'rgt', Default.new.right_column_name
46
+ assert_equal 'black', RenamedColumns.right_column_name
47
+ assert_equal 'black', RenamedColumns.new.right_column_name
41
48
  end
42
49
 
43
50
  def test_parent_column_name
44
51
  assert_equal 'parent_id', Default.parent_column_name
45
52
  assert_equal 'parent_id', Default.new.parent_column_name
53
+ assert_equal 'mother_id', RenamedColumns.parent_column_name
54
+ assert_equal 'mother_id', RenamedColumns.new.parent_column_name
55
+ end
56
+
57
+ def test_creation_with_altered_column_names
58
+ assert_nothing_raised do
59
+ RenamedColumns.create!()
60
+ end
46
61
  end
47
62
 
48
63
  def test_quoted_left_column_name
@@ -730,4 +745,14 @@ class AwesomeNestedSetTest < TestCaseClass
730
745
 
731
746
  check_structure(Category.root.self_and_descendants, levels)
732
747
  end
748
+
749
+ def test_model_with_attr_accessible
750
+ model = Class.new(ActiveRecord::Base)
751
+ model.set_table_name 'categories'
752
+ model.attr_accessible :name
753
+ assert_nothing_raised do
754
+ model.acts_as_nested_set
755
+ model.new(:name => 'foo')
756
+ end
757
+ end
733
758
  end
data/test/db/schema.rb CHANGED
@@ -20,4 +20,11 @@ ActiveRecord::Schema.define(:version => 0) do
20
20
  t.column :notable_id, :integer
21
21
  t.column :notable_type, :string
22
22
  end
23
+
24
+ create_table :renamed_columns, :force => true do |t|
25
+ t.column :name, :string
26
+ t.column :mother_id, :integer
27
+ t.column :red, :integer
28
+ t.column :black, :integer
29
+ end
23
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awesome_nested_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-09-08 00:00:00 -04:00
13
+ date: 2009-10-07 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency