Module: Treequel::Normalization

Included in:
Model, Schema::AttributeType, Schema::Table
Defined in:
lib/treequel/mixins.rb

Overview

A collection of key-normalization functions for various artifacts in LDAP like attribute names, objectclass OIDs, etc.

Class Method Summary collapse

Class Method Details

.normalize_hash(hash) ⇒ Object

Return a copy of hash with all of its keys normalized by #normalize_key.



135
136
137
138
139
140
141
142
143
# File 'lib/treequel/mixins.rb', line 135

def normalize_hash( hash )
	hash = hash.dup
	hash.keys.each do |key|
		nkey = normalize_key( key )
		hash[ nkey ] = hash.delete( key ) if key != nkey
	end

	return hash
end

.normalize_key(key) ⇒ Object

Normalize the given key, returning a downcased Symbol stripped of any invalid characters, and with ‘-’ characters converted to ‘_’.



126
127
128
129
130
131
132
# File 'lib/treequel/mixins.rb', line 126

def normalize_key( key )
	return key if key.to_s =~ Treequel::Constants::Patterns::NUMERICOID
	return key.to_s.downcase.
		gsub( /[^[:alnum:]\-_]/, '' ).
		gsub( '-', '_' ).
		to_sym
end