Sha256: bf3b14f736e1f44a9681f6c9cf8472b6b9f9cb4394fdd0816cebd17d62dda604

Contents?: true

Size: 439 Bytes

Versions: 4

Compression:

Stored size: 439 Bytes

Contents

# frozen_string_literal: true

module FidoMetadata
  module Coercer
    class BitField
      def initialize(mapping, single_value: false)
        @mapping = mapping
        @single_value = single_value
      end

      def coerce(value)
        results = @mapping.reject { |flag, _constant| flag & value == 0 }.values

        if @single_value
          results.first
        else
          results
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fido_metadata-0.4.0 lib/fido_metadata/coercer/bit_field.rb
fido_metadata-0.3.0 lib/fido_metadata/coercer/bit_field.rb
fido_metadata-0.2.0 lib/fido_metadata/coercer/bit_field.rb
fido_metadata-0.1.0 lib/fido_metadata/coercer/bit_field.rb