Sha256: 750013f104d2bbbad212fbb7cf2f5c778f8313ad461af31f2dbd8b4ab6d15843

Contents?: true

Size: 654 Bytes

Versions: 1

Compression:

Stored size: 654 Bytes

Contents

module ActsAsRecursiveTree
  module Builders
    #
    # Strategy module for different strategies of how to build the resulting query.
    #
    module Strategy
      extend ActiveSupport::Autoload

      autoload :Join
      autoload :Subselect

      #
      # Returns a Strategy appropriate for query_opts
      #
      # @param query_opts [ActsAsRecursiveTree::Options::QueryOptions]
      #
      # @return a strategy class best suited for the opts
      def self.for_query_options(query_opts)
        if query_opts.depth_present? || query_opts.ensure_ordering
          Join
        else
          Subselect
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts_as_recursive_tree-2.1.0 lib/acts_as_recursive_tree/builders/strategy.rb