Module: Gem::URI::Util

Defined in:
lib/rubygems/vendor/uri/lib/uri/common.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.make_components_hash(klass, array_hash) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/rubygems/vendor/uri/lib/uri/common.rb', line 38

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} (#{klass.component[1..-1].join(', ')})"
  end
  tmp[:scheme] = klass.to_s.sub(/\A.*::/, '').downcase

  return tmp
end