OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/vendor/plugins/awesome_nested_set
Jean-Philippe Lang e6659501de Limits nested set overhead when destroying an issue without children. 14 years ago
..
lib Limits nested set overhead when destroying an issue without children. 14 years ago
rails Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
test Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
MIT-LICENSE Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
README.rdoc Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
Rakefile Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
awesome_nested_set.gemspec Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago
init.rb Merged nested projects branch. Removes limit on subproject nesting (#594). 16 years ago

README.rdoc

= AwesomeNestedSet

Awesome Nested Set is an implementation of the nested set pattern for ActiveRecord models. It is replacement for acts_as_nested_set and BetterNestedSet, but awesomer.

== What makes this so awesome?

This is a new implementation of nested set based off of BetterNestedSet that fixes some bugs, removes tons of duplication, adds a few useful methods, and adds STI support.

== Installation

If you are on Rails 2.1 or later:

script/plugin install git://github.com/collectiveidea/awesome_nested_set.git

== Usage

To make use of awesome_nested_set, your model needs to have 3 fields: lft, rgt, and parent_id:

class CreateCategories < ActiveRecord::Migration
def self.up
create_table :categories do |t|
t.string :name
t.integer :parent_id
t.integer :lft
t.integer :rgt
end
end

def self.down
drop_table :categories
end
end

Enable the nested set functionality by declaring acts_as_nested_set on your model

class Category < ActiveRecord::Base
acts_as_nested_set
end

Run `rake rdoc` to generate the API docs and see CollectiveIdea::Acts::NestedSet::SingletonMethods for more info.

== View Helper

The view helper is called #nested_set_options.

Example usage:

<%= f.select :parent_id, nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" } %>

<%= select_tag 'parent_id', options_for_select(nested_set_options(Category) {|i| "#{'-' * i.level} #{i.name}" } ) %>

See CollectiveIdea::Acts::NestedSet::Helper for more information about the helpers.

== References

You can learn more about nested sets at:

http://www.dbmsmag.com/9603d06.html
http://threebit.net/tutorials/nestedset/tutorial1.html
http://api.rubyonrails.com/classes/ActiveRecord/Acts/NestedSet/ClassMethods.html
http://opensource.symetrie.com/trac/better_nested_set/


Copyright (c) 2008 Collective Idea, released under the MIT license