lib/shib_rack/attribute_mapping.rb in shib-rack-0.1.0 vs lib/shib_rack/attribute_mapping.rb in shib-rack-0.2.0
- old
+ new
@@ -14,17 +14,21 @@
end
end
def map_multi_value(**mappings)
mappings.each do |attr, header|
- mapper = ->(env) { env[header].split(';') }
+ mapper = ->(env) { parse_multi_value(env[header]) }
add_attribute_mapping(attr, mapper)
end
end
def add_attribute_mapping(attr, mapper)
raise "Conflicting mapping for `#{attr}`" if attribute_mappings[attr]
attribute_mappings[attr] = mapper
+ end
+
+ def parse_multi_value(value)
+ value.split(/(?<!\\);/).map { |x| x.gsub('\;', ';') }
end
end
def self.included(base)
base.extend(ClassMethods)