Sha256: ee91d04b10c2e88413ffaebc103906b3186af3d4d944180de48d5a8040059f89
Contents?: true
Size: 1.03 KB
Versions: 42
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module ActiveModel module Type # = Active Model \Boolean \Type # # A class that behaves like a boolean type, including rules for coercion of # user input. # # - <tt>"false"</tt>, <tt>"f"</tt>, <tt>"0"</tt>, +0+ or any other value in # +FALSE_VALUES+ will be coerced to +false+. # - Empty strings are coerced to +nil+. # - All other values will be coerced to +true+. class Boolean < Value FALSE_VALUES = [ false, 0, "0", :"0", "f", :f, "F", :F, "false", :false, "FALSE", :FALSE, "off", :off, "OFF", :OFF, ].to_set.freeze def type # :nodoc: :boolean end def serialize(value) # :nodoc: cast(value) end def serialize_cast_value(value) # :nodoc: value end private def cast_value(value) if value == "" nil else !FALSE_VALUES.include?(value) end end end end end
Version data entries
42 entries across 42 versions & 6 rubygems
Version | Path |
---|---|
activemodel-7.1.0.rc1 | lib/active_model/type/boolean.rb |
activemodel-7.1.0.beta1 | lib/active_model/type/boolean.rb |