Sha256: 6a6700ed0cf5cf783a34934eb75ae08487347262a47188441dac42cb1261e7db
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module VIISP module Auth class Identity attr_reader :doc def initialize(doc) @doc = doc end def to_hash { 'authentication_provider' => element_text('authenticationProvider'), 'attributes' => attributes, 'user_information' => user_information, 'custom_data' => element_text('customData'), 'source_data' => source_data, } end private def attributes pairs = doc.css('authenticationAttribute').map do |el| [el.at('attribute').text, el.at('value').text] end Hash[pairs] end def user_information pairs = doc.css('userInformation').map do |el| value = el.at('stringValue')&.text || el.at('dateValue')&.text [el.at('information').text, value] end Hash[pairs] end def source_data return unless source_data_element { 'type' => source_data_element.at('type').text, 'parameters' => source_data_parameters, } end def source_data_element @source_data_element ||= doc.at('sourceData') end def source_data_parameters pairs = source_data_element.css('parameter').map do |el| [el.attr('name'), el.text] end Hash[pairs] end def element_text(element_name) doc.at(element_name)&.text end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
viisp-auth-custom-0.1.0 | lib/viisp/auth/identity.rb |