Sha256: e4dc47937a5e2c035d8bd6964cf2f67c7243a0869b2ada46fea7689f60c1f5c9

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 Bytes

Contents

require_relative 'base'

module Amsi
  class AttributeParser
    # Parse the response value of a boolean attribute
    class Boolean < Base
      # Values that AMSI responds with for true
      TRUE_VALUES = %w[1 true].freeze
      private_constant :TRUE_VALUES

      # Values that AMSI responds with for true
      FALSE_VALUES = %w[0 false].freeze
      private_constant :FALSE_VALUES

      # @return [true|false] the parsed attribute value
      # @raise [Amsi::Error::InvalidResponse] if the value doesn't parse
      #   into true or false
      def parse
        return true if TRUE_VALUES.include?(value)
        return false if FALSE_VALUES.include?(value)
        raise Error::InvalidResponse, "Invalid boolean response value: #{value}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
amsi-1.0.1 lib/amsi/attribute_parser/boolean.rb
amsi-1.0.0 lib/amsi/attribute_parser/boolean.rb