Sha256: 06199c6b0cdde27e3aa5293aeedf0c7bcd866129d7fcbaf0861cd2c48564a14f

Contents?: true

Size: 1.06 KB

Versions: 9

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Katalyst
  module Tables
    module Collection
      module Type
        class Boolean < Value
          include Helpers::Delegate
          include Helpers::Multiple

          def initialize(**)
            super(**, delegate: ActiveModel::Type::Boolean)
          end

          def filter?(attribute, value)
            return false unless filterable?

            if attribute.came_from_user?
              attribute.value_before_type_cast.present? || value === false
            else
              !value.nil? && !value.eql?([])
            end
          end

          def suggestions(scope, attribute)
            _, model, column = model_and_column_for(scope, attribute)

            values = %w[true false]

            if attribute.value_before_type_cast.present?
              values = values.select { |value| value.include?(attribute.value_before_type_cast) }
            end

            values.map { |v| constant_suggestion(attribute:, model:, column:, value: deserialize(v)) }
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
katalyst-tables-3.6.2 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.6.1 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.6.0 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.5 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.4 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.3 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.2 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.1 lib/katalyst/tables/collection/type/boolean.rb
katalyst-tables-3.5.0 lib/katalyst/tables/collection/type/boolean.rb