Module: Filterable

Defined in:
lib/filterable.rb,
lib/filterable/concern.rb,
lib/filterable/datable.rb,
lib/filterable/railtie.rb,
lib/filterable/version.rb,
lib/filterable/sortable.rb,
lib/filterable/datable/after.rb,
lib/filterable/datable/range.rb,
lib/filterable/datable/since.rb,
lib/filterable/datable/before.rb,
lib/filterable/concerns/datable.rb,
lib/filterable/concerns/sortable.rb,
lib/filterable/attribute_normalization.rb

Overview

Declarative, whitelisted query filtering and ordering for ActiveRecord models.

In a Rails application the Railtie auto-includes the building blocks into every model, so a model only declares its columns:

class MovementDetail < ApplicationRecord
datable  :value_date, :booking_date
sortable :value_date, :gross_amount_cents
end

MovementDetail.filterable(filters: { value_date: { after: '2026-02-01' }, sort: '-value_date' })

Outside Rails, include the pieces manually:

include Filterable::Concern
include Filterable::Concerns::Datable
include Filterable::Concerns::Sortable

Defined Under Namespace

Modules: AttributeNormalization, Concern, Concerns, Datable, Sortable Classes: Error, Railtie

Constant Summary collapse

VERSION =
'0.1.0'