class JWT::JWK::Set
def ==(other)
def ==(other) other.is_a?(JWT::JWK::Set) && keys.sort == other.keys.sort end
def add(key)
def add(key) @keys << JWT::JWK.new(key) self end
def export(options = {})
def export(options = {}) { keys: @keys.map { |k| k.export(options) } } end
def initialize(jwks = nil, options = {}) # rubocop:disable Metrics/CyclomaticComplexity
def initialize(jwks = nil, options = {}) # rubocop:disable Metrics/CyclomaticComplexity jwks ||= {} @keys = case jwks when JWT::JWK::Set # Simple duplication jwks.keys when JWT::JWK::KeyBase # Singleton [jwks] when Hash jwks = jwks.transform_keys(&:to_sym) [*jwks[:keys]].map { |k| JWT::JWK.new(k, nil, options) } when Array jwks.map { |k| JWT::JWK.new(k, nil, options) } else raise ArgumentError, 'Can only create new JWKS from Hash, Array and JWK' end end
def merge(enum)
def merge(enum) @keys += JWT::JWK::Set.new(enum.to_a).keys self end
def reject!(&block)
def reject!(&block) return @keys.reject! unless block self if @keys.reject!(&block) end
def select!(&block)
def select!(&block) return @keys.select! unless block self if @keys.select!(&block) end
def union(enum)
def union(enum) dup.merge(enum) end
def uniq!(&block)
def uniq!(&block) self if @keys.uniq!(&block) end