Class: SmartCsvImport::Normalizers::BooleanConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_csv_import/normalizers/boolean_converter.rb

Constant Summary collapse

TRUTHY =
Set.new(%w[true yes 1 t y]).freeze
FALSEY =
Set.new(%w[false no 0 f n]).freeze

Instance Method Summary collapse

Instance Method Details

#call(value) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/smart_csv_import/normalizers/boolean_converter.rb', line 9

def call(value)
  return nil if value.nil?
  return value if value == true || value == false

  normalized = value.to_s.strip.downcase
  return nil if normalized.empty?

  if TRUTHY.include?(normalized)
    true
  elsif FALSEY.include?(normalized)
    false
  else
    nil
  end
end