Module: URI::Util

Defined in:
lib/uri/common.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.make_components_hash(klass, array_hash) ⇒ Object



556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
# File 'lib/uri/common.rb', line 556

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