Sha256: be05632256300bfb978b5e3168eadafafe458c1f1534e4eb51c1f0bd08f2b96f

Contents?: true

Size: 868 Bytes

Versions: 17

Compression:

Stored size: 868 Bytes

Contents

module Acfs::Resource::Attributes
  # @api public
  #
  # Boolean attribute type. Use it in your model as an attribute type:
  #
  # @example
  #   class User < Acfs::Resource
  #     attribute :name, :boolean
  #   end
  #
  # Given objects will be converted to string. The following strings
  # are considered true, everything else false:
  #
  #  true, on, yes
  #
  class Boolean < Base
    FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF', 'no', 'NO'].to_set

    # @api public
    #
    # Cast given object to boolean.
    #
    # @param [Object] value Object to cast.
    # @return [TrueClass, FalseClass] Casted boolean.
    #
    def cast_value(value)
      return true if value == true
      return false if value == false

      if value.blank?
        nil
      else
        !FALSE_VALUES.include?(value)
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
acfs-1.3.2 lib/acfs/resource/attributes/boolean.rb
acfs-1.3.1 lib/acfs/resource/attributes/boolean.rb
acfs-1.3.0 lib/acfs/resource/attributes/boolean.rb
acfs-1.2.1 lib/acfs/resource/attributes/boolean.rb
acfs-0.50.0 lib/acfs/resource/attributes/boolean.rb
acfs-1.2.0 lib/acfs/resource/attributes/boolean.rb
acfs-0.49.1 lib/acfs/resource/attributes/boolean.rb
acfs-1.1.1 lib/acfs/resource/attributes/boolean.rb
acfs-0.49.0 lib/acfs/resource/attributes/boolean.rb
acfs-1.1.0 lib/acfs/resource/attributes/boolean.rb
acfs-0.48.2 lib/acfs/resource/attributes/boolean.rb
acfs-1.0.1 lib/acfs/resource/attributes/boolean.rb
acfs-0.48.1 lib/acfs/resource/attributes/boolean.rb
acfs-1.0.0 lib/acfs/resource/attributes/boolean.rb
acfs-0.48.0 lib/acfs/resource/attributes/boolean.rb
acfs-0.47.0 lib/acfs/resource/attributes/boolean.rb
acfs-0.46.0 lib/acfs/resource/attributes/boolean.rb