Class: CrudComponents::Fields::BooleanField

Inherits:
Base
  • Object
show all
Defined in:
lib/crud_components/fields/boolean_field.rb

Overview

boolean column: ✓/✗ cell, any/yes/no select; values cast & validated, invalid ones leave the scope unchanged.

Constant Summary collapse

TRUE_VALUES =

Stricter than ActiveModel’s cast (which makes any junk string true): only recognizable values filter, everything else is ignored.

%w[true t 1 yes on].freeze
FALSE_VALUES =
%w[false f 0 no off].freeze

Constants inherited from Base

CrudComponents::Fields::Base::NON_EDITABLE_COLUMNS

Instance Attribute Summary

Attributes inherited from Base

#facets, #model, #name, #options

Instance Method Summary collapse

Methods inherited from Base

#apply_filter, #apply_filter_facet, #apply_sort, #column, #custom_header?, #declared_preloads, #eager_load, #editable?, #editable_permitted?, #filter_choices, #filter_control, #filter_facet, #filterable?, #form_partial, #group_label, #group_model, #header, #header_actions, #human_name, #initialize, #nullable?, #permit_param, #permitted?, #picker_label, #range_filter?, #render_block, #renderer, #renderer_options, #sort_facet, #sortable?, #value

Constructor Details

This class inherits a constructor from CrudComponents::Fields::Base

Instance Method Details

#apply_derived_filter(scope, exact: nil) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/crud_components/fields/boolean_field.rb', line 21

def apply_derived_filter(scope, exact: nil, **)
  case exact&.downcase
  when *TRUE_VALUES then scope.where(name => true)
  when *FALSE_VALUES then scope.where(name => false)
  when CrudComponents::NULL_FILTER_VALUE then nullable? ? scope.where(name => nil) : scope
  else scope
  end
end

#default_editable?Boolean

Returns:

  • (Boolean)


10
# File 'lib/crud_components/fields/boolean_field.rb', line 10

def default_editable? = true

#default_rendererObject



6
# File 'lib/crud_components/fields/boolean_field.rb', line 6

def default_renderer = :boolean

#derived_filter_controlObject



9
# File 'lib/crud_components/fields/boolean_field.rb', line 9

def derived_filter_control = :boolean

#derived_filterable?Boolean

Returns:

  • (Boolean)


7
# File 'lib/crud_components/fields/boolean_field.rb', line 7

def derived_filterable? = true

#derived_sortable?Boolean

Returns:

  • (Boolean)


8
# File 'lib/crud_components/fields/boolean_field.rb', line 8

def derived_sortable? = true

#filter_includes_null?Boolean

A nullable column offers a “not set” (IS NULL) choice in the filter.

Returns:

  • (Boolean)


19
# File 'lib/crud_components/fields/boolean_field.rb', line 19

def filter_includes_null? = nullable?

#form_controlObject



11
# File 'lib/crud_components/fields/boolean_field.rb', line 11

def form_control = :boolean