class Datagrid::Filters::ExtendedBooleanFilter

@!visibility private

Constants

FALSE_VALUES
NO
TRUTH_VALUES
YES

Public Class Methods

new(report, attribute, options = {}, &block) click to toggle source
Calls superclass method Datagrid::Filters::EnumFilter::new
# File lib/datagrid/filters/extended_boolean_filter.rb, line 9
def initialize(report, attribute, options = {}, &block)
  options[:select] = -> { boolean_select }
  super(report, attribute, options, &block)
end

Public Instance Methods

execute(value, scope, grid_object) click to toggle source
Calls superclass method Datagrid::Filters::BaseFilter#execute
# File lib/datagrid/filters/extended_boolean_filter.rb, line 14
def execute(value, scope, grid_object)
  value = value.blank? ? nil : ::Datagrid::Utils.booleanize(value)
  super(value, scope, grid_object)
end
parse(value) click to toggle source
Calls superclass method Datagrid::Filters::EnumFilter#parse
# File lib/datagrid/filters/extended_boolean_filter.rb, line 19
def parse(value)
  value = value.downcase if value.is_a?(String)
  case value
  when *TRUTH_VALUES
    YES
  when *FALSE_VALUES
    NO
  when value.blank?
    nil
  else
    super(value)
  end
end

Protected Instance Methods

boolean_select() click to toggle source
# File lib/datagrid/filters/extended_boolean_filter.rb, line 35
def boolean_select
  [YES, NO].map do |key, value|
    [I18n.t("datagrid.filters.xboolean.#{key.downcase}"), key]
  end
end