Sha256: d224b3e3ecbdb6e14aa4f9feb140d3cb8dc34b39fa8e42b8c37299d1fa4c191d

Contents?: true

Size: 746 Bytes

Versions: 12

Compression:

Stored size: 746 Bytes

Contents

class Datagrid::Filters::ExtendedBooleanFilter < Datagrid::Filters::EnumFilter #:nodoc:

  YES = "YES"
  NO = "NO"

  def initialize(report, attribute, options = {}, &block)
    options[:select] = -> { boolean_select }
    super(report, attribute, options, &block)
  end

  def execute(value, scope, grid_object)
    value = value.blank? ? nil : ::Datagrid::Utils.booleanize(value)
    super(value, scope, grid_object)
  end

  def parse(value)
    case
    when value == true
      YES
    when value == false
      NO
    when value.blank?
      nil
    else
      super(value)
    end
  end

  protected

  def boolean_select
    [YES, NO].map do |key, value|
      [I18n.t("datagrid.filters.xboolean.#{key.downcase}"), key]
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
datagrid-1.6.3 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.6.2 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.6.1 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.6.0 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.9 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.8 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.7 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.6 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.5 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.4 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.3 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.2 lib/datagrid/filters/extended_boolean_filter.rb