Sha256: 969056dc28ed129b1fed5551834509f61d9b4063174df68a6baebbaf15f22aff

Contents?: true

Size: 876 Bytes

Versions: 18

Compression:

Stored size: 876 Bytes

Contents

module Frodo
  module Properties
    # Defines the Boolean Frodo type.
    class Boolean < Frodo::Property
      # Returns the property value, properly typecast
      # @return [Boolean, nil]
      def value
        if (@value.nil? || @value.empty?) && allows_nil?
          nil
        else
          (@value == 'true' || @value == '1')
        end
      end

      # Sets the property value
      # @params new_value [Boolean]
      def value=(new_value)
        validate(new_value)
        @value = new_value.to_s
      end

      # The Frodo type name
      def type
        'Edm.Boolean'
      end

      private

      def validate(value)
        return if value.nil? && allows_nil?
        unless [0,1,'0','1','true','false',true,false].include?(value)
          validation_error 'Value is outside accepted range: true or false'
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
frodo-0.12.8 lib/frodo/properties/boolean.rb
frodo-0.12.7 lib/frodo/properties/boolean.rb
frodo-0.12.6 lib/frodo/properties/boolean.rb
frodo-0.12.5 lib/frodo/properties/boolean.rb
frodo-0.12.4 lib/frodo/properties/boolean.rb
frodo-0.12.2 lib/frodo/properties/boolean.rb
frodo-0.12.1 lib/frodo/properties/boolean.rb
frodo-0.12.0 lib/frodo/properties/boolean.rb
frodo-0.11.0 lib/frodo/properties/boolean.rb
frodo-0.10.8 lib/frodo/properties/boolean.rb
frodo-0.10.7 lib/frodo/properties/boolean.rb
frodo-0.10.6 lib/frodo/properties/boolean.rb
frodo-0.10.5 lib/frodo/properties/boolean.rb
frodo-0.10.4 lib/frodo/properties/boolean.rb
frodo-0.10.3 lib/frodo/properties/boolean.rb
frodo-0.10.2 lib/frodo/properties/boolean.rb
frodo-0.10.1 lib/frodo/properties/boolean.rb
frodo-0.10.0 lib/frodo/properties/boolean.rb