Module: ShibRack::AttributeMapping::ClassMethods
- Defined in:
- lib/shib_rack/attribute_mapping.rb
Overview
Class methods for defining attribute mappings
Instance Attribute Summary collapse
-
#attribute_mappings ⇒ Object
Returns the value of attribute attribute_mappings.
Instance Method Summary collapse
- #add_attribute_mapping(attr, mapper) ⇒ Object
- #map_multi_value(**mappings) ⇒ Object
- #map_single_value(**mappings) ⇒ Object
- #parse_multi_value(value) ⇒ Object
Instance Attribute Details
#attribute_mappings ⇒ Object
Returns the value of attribute attribute_mappings.
8 9 10 |
# File 'lib/shib_rack/attribute_mapping.rb', line 8 def attribute_mappings @attribute_mappings end |
Instance Method Details
#add_attribute_mapping(attr, mapper) ⇒ Object
24 25 26 27 28 |
# File 'lib/shib_rack/attribute_mapping.rb', line 24 def add_attribute_mapping(attr, mapper) raise "Conflicting mapping for `#{attr}`" if attribute_mappings[attr] attribute_mappings[attr] = mapper end |
#map_multi_value(**mappings) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/shib_rack/attribute_mapping.rb', line 17 def map_multi_value(**mappings) mappings.each do |attr, header| mapper = ->(env) { parse_multi_value(env[header]) } add_attribute_mapping(attr, mapper) end end |
#map_single_value(**mappings) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/shib_rack/attribute_mapping.rb', line 10 def map_single_value(**mappings) mappings.each do |attr, header| mapper = ->(env) { env[header] } add_attribute_mapping(attr, mapper) end end |
#parse_multi_value(value) ⇒ Object
30 31 32 |
# File 'lib/shib_rack/attribute_mapping.rb', line 30 def parse_multi_value(value) value.split(/(?<!\\);/).map { |x| x.gsub('\;', ';') } end |