class JWT::Claims::Numeric

Constants

NUMERIC_CLAIMS

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/jwt/claims/numeric.rb, line 22
def self.new(*args)
  return super if args.empty?

  Compat.new(*args)
end
verify!(payload:, **_args) click to toggle source
# File lib/jwt/claims/numeric.rb, line 32
def self.verify!(payload:, **_args)
  JWT::Claims.verify_payload!(payload, :numeric)
end

Public Instance Methods

verify!(context:) click to toggle source
# File lib/jwt/claims/numeric.rb, line 28
def verify!(context:)
  validate_numeric_claims(context.payload)
end

Private Instance Methods

validate_is_numeric(payload, claim) click to toggle source
# File lib/jwt/claims/numeric.rb, line 44
def validate_is_numeric(payload, claim)
  return unless payload.is_a?(Hash)
  return unless payload.key?(claim) ||
                payload.key?(claim.to_s)

  return if payload[claim].is_a?(::Numeric) || payload[claim.to_s].is_a?(::Numeric)

  raise InvalidPayload, "#{claim} claim must be a Numeric value but it is a #{(payload[claim] || payload[claim.to_s]).class}"
end
validate_numeric_claims(payload) click to toggle source
# File lib/jwt/claims/numeric.rb, line 38
def validate_numeric_claims(payload)
  NUMERIC_CLAIMS.each do |claim|
    validate_is_numeric(payload, claim)
  end
end