Sha256: 6195487627f700d86c0d8ca84149b6e6ff3910bb4790aceaa62b9c124463d7c7

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

module ActsAsFollower
  module FollowerLib

    private

    DEFAULT_PARENTS = [ApplicationRecord, ActiveRecord::Base]

    # Retrieves the parent class name if using STI.
    def parent_class_name(obj)
      unless parent_classes.include?(obj.class.superclass)
        return obj.class.base_class.name
      end
      obj.class.name
    end

    def apply_options_to_scope(scope, options = {})
      if options.has_key?(:limit)
        scope = scope.limit(options[:limit])
      end
      if options.has_key?(:includes)
        scope = scope.includes(options[:includes])
      end
      if options.has_key?(:joins)
        scope = scope.joins(options[:joins])
      end
      if options.has_key?(:where)
        scope = scope.where(options[:where])
      end
      if options.has_key?(:order)
        scope = scope.order(options[:order])
      end
      scope
    end

    def parent_classes
      return DEFAULT_PARENTS unless ActsAsFollower.custom_parent_classes

      ActiveSupport::Deprecation.warn("Setting custom parent classes is deprecated and will be removed in future versions.")
      ActsAsFollower.custom_parent_classes + DEFAULT_PARENTS
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts_as_follower1-1.0.9 lib/acts_as_follower/follower_lib.rb