Sha256: 98139c6c011b89b19ea75c7446d52a0f18296d51238b0512685f4c773f356e28
Contents?: true
Size: 997 Bytes
Versions: 3
Compression:
Stored size: 997 Bytes
Contents
require 'active_model' require 'tzinfo' require 'validate_url' require 'validate_email' require 'attr_required' require 'attr_optional' module OpenIDConnect class ResponseObject include ActiveModel::Validations, AttrRequired, AttrOptional def initialize(attributes = {}) all_attriutes.each do |_attr_| self.send :"#{_attr_}=", attributes[_attr_] end attr_missing! end def all_attriutes required_attributes + optional_attributes end def require_at_least_one_attributes all_blank = all_attriutes.all? do |key| self.send(key).blank? end errors.add :base, 'At least one attribute is required' if all_blank end def as_json(options = {}) all_attriutes.inject({}) do |hash, _attr_| hash.merge! _attr_ => self.send(_attr_) end.delete_if do |key, value| value.nil? end end end end Dir[File.dirname(__FILE__) + '/response_object/*.rb'].each do |file| require file end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
openid_connect-0.0.3 | lib/openid_connect/response_object.rb |
openid_connect-0.0.2 | lib/openid_connect/response_object.rb |
openid_connect-0.0.1 | lib/openid_connect/response_object.rb |