Sha256: 61250c4b2c70e8e582494b4f3188cce8ae3a78672c3758c57c23cff758eaa129

Contents?: true

Size: 813 Bytes

Versions: 3

Compression:

Stored size: 813 Bytes

Contents

require 'ostruct'

module ActsAsRecursiveTree
  module ActsMacro

    ##
    # Configuration options are:
    #
    # * <tt>foreign_key</tt> - specifies the column name to use for tracking
    # of the tree (default: +parent_id+)
    def recursive_tree(parent_key: :parent_id, parent_type_column: nil)

      class_attribute :_recursive_tree_config
      self._recursive_tree_config = OpenStruct.new(
        primary_key:        self.primary_key.to_sym,
        parent_key:         parent_key.to_sym,
        parent_type_column: parent_type_column.try(:to_sym),
        depth_column:       :recursive_depth
      )

      include ActsAsRecursiveTree::Model
      include ActsAsRecursiveTree::Associations
      include ActsAsRecursiveTree::Scopes
    end

    alias_method :acts_as_tree, :recursive_tree
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acts_as_recursive_tree-2.0.2 lib/acts_as_recursive_tree/acts_macro.rb
acts_as_recursive_tree-2.0.1 lib/acts_as_recursive_tree/acts_macro.rb
acts_as_recursive_tree-2.0.0 lib/acts_as_recursive_tree/acts_macro.rb