class OpenIDConnect::ConnectObject
Attributes
raw_attributes[RW]
Public Class Methods
all_attributes()
click to toggle source
# File lib/openid_connect/connect_object.rb, line 15 def self.all_attributes required_attributes + optional_attributes end
new(attributes = {})
click to toggle source
# File lib/openid_connect/connect_object.rb, line 7 def initialize(attributes = {}) all_attributes.each do |_attr_| self.send :"#{_attr_}=", attributes[_attr_] end self.raw_attributes = attributes attr_missing! end
Public Instance Methods
all_attributes()
click to toggle source
# File lib/openid_connect/connect_object.rb, line 18 def all_attributes self.class.all_attributes end
as_json(options = {})
click to toggle source
# File lib/openid_connect/connect_object.rb, line 29 def as_json(options = {}) options ||= {} # options can be nil when to_json is called without options validate! unless options[:skip_validation] all_attributes.inject({}) do |hash, _attr_| value = self.send(_attr_) hash.merge! _attr_ => case value when ConnectObject value.as_json options else value end end.delete_if do |key, value| value.nil? end end
require_at_least_one_attributes()
click to toggle source
# File lib/openid_connect/connect_object.rb, line 22 def require_at_least_one_attributes all_blank = all_attributes.all? do |key| self.send(key).blank? end errors.add :base, 'At least one attribute is required' if all_blank end
validate!()
click to toggle source
# File lib/openid_connect/connect_object.rb, line 45 def validate! valid? or raise ValidationFailed.new(self) end