Module: URI::Util

Defined in:
lib/uri/common.rb

Overview

REGEXP

Instance Method Summary collapse

Instance Method Details

#make_components_hash(klass, array_hash) ⇒ Object



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# File 'lib/uri/common.rb', line 218

def make_components_hash(klass, array_hash)
  tmp = {}
  if array_hash.kind_of?(Array) &&
      array_hash.size == klass.component.size - 1
    klass.component[1..-1].each_index do |i|
      begin
        tmp[klass.component[i + 1]] = array_hash[i].clone
      rescue TypeError
        tmp[klass.component[i + 1]] = array_hash[i]
      end
    end

  elsif array_hash.kind_of?(Hash)
    array_hash.each do |key, value|
      begin
        tmp[key] = value.clone
      rescue TypeError
        tmp[key] = value
      end
    end
  else
    raise ArgumentError, 
      "expected Array of or Hash of components of #{klass.to_s} (#{klass.component[1..-1].join(', ')})"
  end
  tmp[:scheme] = klass.to_s.sub(/\A.*::/, '').downcase

  return tmp
end