Chris@1115
|
1 class Note < ActiveRecord::Base
|
Chris@1115
|
2 acts_as_nested_set :scope => [:notable_id, :notable_type]
|
Chris@1115
|
3 end
|
Chris@1115
|
4
|
Chris@1115
|
5 class Default < ActiveRecord::Base
|
Chris@1115
|
6 self.table_name = 'categories'
|
Chris@1115
|
7 acts_as_nested_set
|
Chris@1115
|
8 end
|
Chris@1115
|
9
|
Chris@1115
|
10 class ScopedCategory < ActiveRecord::Base
|
Chris@1115
|
11 self.table_name = 'categories'
|
Chris@1115
|
12 acts_as_nested_set :scope => :organization
|
Chris@1115
|
13 end
|
Chris@1115
|
14
|
Chris@1115
|
15 class RenamedColumns < ActiveRecord::Base
|
Chris@1115
|
16 acts_as_nested_set :parent_column => 'mother_id', :left_column => 'red', :right_column => 'black'
|
Chris@1115
|
17 end
|
Chris@1115
|
18
|
Chris@1115
|
19 class Category < ActiveRecord::Base
|
Chris@1115
|
20 acts_as_nested_set
|
Chris@1115
|
21
|
Chris@1115
|
22 validates_presence_of :name
|
Chris@1115
|
23
|
Chris@1115
|
24 # Setup a callback that we can switch to true or false per-test
|
Chris@1115
|
25 set_callback :move, :before, :custom_before_move
|
Chris@1115
|
26 cattr_accessor :test_allows_move
|
Chris@1115
|
27 @@test_allows_move = true
|
Chris@1115
|
28 def custom_before_move
|
Chris@1115
|
29 @@test_allows_move
|
Chris@1115
|
30 end
|
Chris@1115
|
31
|
Chris@1115
|
32 def to_s
|
Chris@1115
|
33 name
|
Chris@1115
|
34 end
|
Chris@1115
|
35
|
Chris@1115
|
36 def recurse &block
|
Chris@1115
|
37 block.call self, lambda{
|
Chris@1115
|
38 self.children.each do |child|
|
Chris@1115
|
39 child.recurse &block
|
Chris@1115
|
40 end
|
Chris@1115
|
41 }
|
Chris@1115
|
42 end
|
Chris@1115
|
43 end
|
Chris@1115
|
44
|
Chris@1115
|
45 class Thing < ActiveRecord::Base
|
Chris@1115
|
46 acts_as_nested_set :counter_cache => 'children_count'
|
Chris@1115
|
47 end
|
Chris@1115
|
48
|
Chris@1115
|
49 class DefaultWithCallbacks < ActiveRecord::Base
|
Chris@1115
|
50
|
Chris@1115
|
51 self.table_name = 'categories'
|
Chris@1115
|
52
|
Chris@1115
|
53 attr_accessor :before_add, :after_add, :before_remove, :after_remove
|
Chris@1115
|
54
|
Chris@1115
|
55 acts_as_nested_set :before_add => :do_before_add_stuff,
|
Chris@1115
|
56 :after_add => :do_after_add_stuff,
|
Chris@1115
|
57 :before_remove => :do_before_remove_stuff,
|
Chris@1115
|
58 :after_remove => :do_after_remove_stuff
|
Chris@1115
|
59
|
Chris@1115
|
60 private
|
Chris@1115
|
61
|
Chris@1115
|
62 [ :before_add, :after_add, :before_remove, :after_remove ].each do |hook_name|
|
Chris@1115
|
63 define_method "do_#{hook_name}_stuff" do |child_node|
|
Chris@1115
|
64 self.send("#{hook_name}=", child_node)
|
Chris@1115
|
65 end
|
Chris@1115
|
66 end
|
Chris@1115
|
67
|
Chris@1115
|
68 end
|
Chris@1115
|
69
|
Chris@1115
|
70 class Broken < ActiveRecord::Base
|
Chris@1115
|
71 acts_as_nested_set
|
Chris@1115
|
72 end |