Module: URI::Util

Defined in:
lib/extensions/uri/uri/common.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.make_components_hash(klass, array_hash) ⇒ Object



439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
# File 'lib/extensions/uri/uri/common.rb', line 439

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