Sha256: 4f8a7a01ee114a0b58589e14f7c7ba69a243e4180c30dfa61f76ccbba208a74a

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

require 'ordered_tree/class_methods'
require 'ordered_tree/instance_methods'

module OrderedTree #:nodoc:
  # Configuration:
  #
  #   class Person < ActiveRecord::Base
  #     ordered_tree :foreign_key   => :parent_id,
  #                  :order         => :position
  #   end
  #
  #   class CreatePeople < ActiveRecord::Migration
  #     def self.up
  #       create_table :people do |t|
  #         t.column :parent_id ,:integer ,:null => false ,:default => 0
  #         t.column :position  ,:integer
  #       end
  #       add_index(:people, :parent_id)
  #     end
  #   end

  def ordered_tree(options = {})
    cattr_accessor :ordered_tree_config
    self.ordered_tree_config ||= {}
    self.ordered_tree_config[:foreign_key] ||= :parent_id
    self.ordered_tree_config[:order] ||= :position
    self.ordered_tree_config.update(options) if options.is_a?(Hash)
    include OrderedTree::ClassMethods
    include OrderedTree::InstanceMethods
  end #ordered_tree
end #module OrderedTree

ActiveRecord::Base.extend OrderedTree

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ordered_tree-0.1.1 lib/ordered_tree.rb