Sha256: 4f155078da22e7a696514270279dab73f3d041231734df5f33c8e67c2ae37c7d

Contents?: true

Size: 682 Bytes

Versions: 9

Compression:

Stored size: 682 Bytes

Contents

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

  YES = "YES"
  NO = "NO"

  def initialize(report, attribute, options = {}, &block)
    options[:select] = [YES, NO].map do |key, value|
      [I18n.t("datagrid.filters.xboolean.#{key.downcase}"), key]
    end
    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

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
datagrid-1.5.1 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.5.0 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.4.4 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.4.3 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.4.2 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.4.1 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.4.0 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.3.9 lib/datagrid/filters/extended_boolean_filter.rb
datagrid-1.3.7 lib/datagrid/filters/extended_boolean_filter.rb