Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/deltacloud/core_ext/hash.rb

Overview

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Direct Known Subclasses

OrderedHash

Instance Method Summary collapse

Instance Method Details

#gsub_keys(rgx_pattern, replacement) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/deltacloud/core_ext/hash.rb', line 17

def gsub_keys(rgx_pattern, replacement)
  remove = []
  new_hash = {}
  each_key do |key|
    if key.to_s.match(rgx_pattern)
       new_key = key.to_s.gsub(rgx_pattern, replacement).downcase
       new_hash[new_key] = self[key]
    else
      new_hash[key] = self[key]
    end
  end
  clear
  merge!(new_hash)
end

#symbolize_keysObject



33
34
35
36
# File 'lib/deltacloud/core_ext/hash.rb', line 33

def symbolize_keys
  keys.each { |key| self[(key.to_sym rescue key) || key] = delete(key) }
  self
end

#to_query_paramsObject



38
39
40
41
42
43
44
# File 'lib/deltacloud/core_ext/hash.rb', line 38

def to_query_params
  return '' if empty?
  '?' + self.map do |k,v|
    next if k.nil?
    "#{k}=#{URI.escape(v.to_s.strip, /[^#{URI::PATTERN::UNRESERVED}]/)}"
  end.compact.join('&')
end