Sha256: 8dc6dbcf36c685fe95e2d53aefde064a70dadef90c73f65ed00cd3a201fd7a42

Contents?: true

Size: 481 Bytes

Versions: 5

Compression:

Stored size: 481 Bytes

Contents

module ActiveRemote
  module Typecasting
    class BooleanTypecaster
      BOOL_VALUES = [true, false].freeze
      FALSE_VALUES = ["n", "N", "no", "No", "NO", "false", "False", "FALSE", "off", "Off", "OFF", "f", "F"]

      def self.call(value)
        return value if BOOL_VALUES.include?(value)

        case value
        when *FALSE_VALUES then false
        when Numeric, /^\-?[0-9]/ then !value.to_f.zero?
        else value.present?
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
active_remote-3.3.3 lib/active_remote/typecasting/boolean_typecaster.rb
active_remote-3.3.2 lib/active_remote/typecasting/boolean_typecaster.rb
active_remote-3.3.1 lib/active_remote/typecasting/boolean_typecaster.rb
active_remote-3.3.0 lib/active_remote/typecasting/boolean_typecaster.rb
active_remote-3.2.2 lib/active_remote/typecasting/boolean_typecaster.rb