diff options
Diffstat (limited to 'lib/plugins/awesome_nested_set/spec/support/models.rb')
-rw-r--r-- | lib/plugins/awesome_nested_set/spec/support/models.rb | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/lib/plugins/awesome_nested_set/spec/support/models.rb b/lib/plugins/awesome_nested_set/spec/support/models.rb new file mode 100644 index 000000000..c54ff3e2c --- /dev/null +++ b/lib/plugins/awesome_nested_set/spec/support/models.rb @@ -0,0 +1,96 @@ +class Note < ActiveRecord::Base + acts_as_nested_set :scope => [:notable_id, :notable_type] +end + +class Default < ActiveRecord::Base + self.table_name = 'categories' + acts_as_nested_set +end + +class ScopedCategory < ActiveRecord::Base + self.table_name = 'categories' + acts_as_nested_set :scope => :organization +end + +class OrderedCategory < ActiveRecord::Base + self.table_name = 'categories' + acts_as_nested_set :order_column => 'name' +end + +class RenamedColumns < ActiveRecord::Base + acts_as_nested_set :parent_column => 'mother_id', + :left_column => 'red', + :right_column => 'black', + :depth_column => 'pitch' +end + +class Category < ActiveRecord::Base + acts_as_nested_set + + validates_presence_of :name + + # Setup a callback that we can switch to true or false per-test + set_callback :move, :before, :custom_before_move + cattr_accessor :test_allows_move + @@test_allows_move = true + def custom_before_move + @@test_allows_move + end + + def to_s + name + end + + def recurse &block + block.call self, lambda{ + self.children.each do |child| + child.recurse &block + end + } + end +end + +class Thing < ActiveRecord::Base + acts_as_nested_set :counter_cache => 'children_count' +end + +class DefaultWithCallbacks < ActiveRecord::Base + + self.table_name = 'categories' + + attr_accessor :before_add, :after_add, :before_remove, :after_remove + + acts_as_nested_set :before_add => :do_before_add_stuff, + :after_add => :do_after_add_stuff, + :before_remove => :do_before_remove_stuff, + :after_remove => :do_after_remove_stuff + + private + + [ :before_add, :after_add, :before_remove, :after_remove ].each do |hook_name| + define_method "do_#{hook_name}_stuff" do |child_node| + self.send("#{hook_name}=", child_node) + end + end + +end + +class Broken < ActiveRecord::Base + acts_as_nested_set +end + +class Order < ActiveRecord::Base + acts_as_nested_set + + default_scope order(:name) +end + +class Position < ActiveRecord::Base + acts_as_nested_set + + default_scope order(:position) +end + +class NoDepth < ActiveRecord::Base + acts_as_nested_set +end |