module OpenIDConnect::RequestObject::Claimable

Public Class Methods

included(klass) click to toggle source
# File lib/openid_connect/request_object/claimable.rb, line 4
def self.included(klass)
  klass.send :attr_optional, :claims
end
new(attributes = {}) click to toggle source
Calls superclass method
# File lib/openid_connect/request_object/claimable.rb, line 8
def initialize(attributes = {})
  super
  if claims.present?
    _claims_ = {}
    claims.each do |key, value|
      _claims_[key] = case value
      when :optional, :voluntary
        {
          essential: false
        }
      when :required, :essential
        {
          essential: true
        }
      else
        value
      end
    end
    self.claims = _claims_.with_indifferent_access
  end
end

Public Instance Methods

accessible?(claim) click to toggle source
# File lib/openid_connect/request_object/claimable.rb, line 49
def accessible?(claim)
  claims.try(:include?, claim)
end
as_json(options = {}) click to toggle source
Calls superclass method
# File lib/openid_connect/request_object/claimable.rb, line 30
def as_json(options = {})
  keys = claims.try(:keys)
  hash = super
  Array(keys).each do |key|
    hash[:claims][key] ||= nil
  end
  hash
end
essential?(claim)
Alias for: required?
optional?(claim) click to toggle source
# File lib/openid_connect/request_object/claimable.rb, line 44
def optional?(claim)
  accessible?(claim) && !required?(claim)
end
Also aliased as: voluntary?
required?(claim) click to toggle source
# File lib/openid_connect/request_object/claimable.rb, line 39
def required?(claim)
  accessible?(claim) && claims[claim].is_a?(Hash) && claims[claim][:essential]
end
Also aliased as: essential?
voluntary?(claim)
Alias for: optional?