Sha256: c662e6ff6f814930e5e682d7138d1bd646250cb95b29f9902091ee5c35469c79

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require "active_record/scope_names"
require "active_hash_relation/version"
require "active_hash_relation/helpers"
require "active_hash_relation/column_filters"
require "active_hash_relation/scope_filters"
require "active_hash_relation/sort_filters"
require "active_hash_relation/limit_filters"
require "active_hash_relation/association_filters"
require "active_hash_relation/filter_applier"

require "active_hash_relation/aggregation"

module ActiveHashRelation
  class << self
    attr_accessor :configuration
  end

  def self.configure
    self.configuration
    yield(configuration)
  end

  def self.configuration
    @configuration ||= Configuration.new do
      self.has_filter_classes = false
    end
  end

  def apply_filters(resource, params, include_associations: false, model: nil)
    FilterApplier.new(
      resource,
      params,
      include_associations: include_associations,
      model: model
    ).apply_filters
  end

  def aggregations(resource, params)
    Aggregation.new(resource, params).apply
  end

  class Configuration
    attr_accessor :has_filter_classes, :filter_class_prefix, :filter_class_suffix,
      :use_unscoped
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_hash_relation-1.0.3 lib/active_hash_relation.rb
active_hash_relation-1.0.2 lib/active_hash_relation.rb