Module: Aws::Util Private

Defined in:
lib/aws-sdk-core/util.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Class Method Summary collapse

Class Method Details

.copy_hash(hash) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



16
17
18
19
20
21
22
# File 'lib/aws-sdk-core/util.rb', line 16

def copy_hash(hash)
  if Hash === hash
    deep_copy(hash)
  else
    raise ArgumentError, "expected hash, got `#{hash.class}`"
  end
end

.deep_copy(obj) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/aws-sdk-core/util.rb', line 24

def deep_copy(obj)
  case obj
  when nil then nil
  when true then true
  when false then false
  when Hash
    obj.inject({}) do |h, (k,v)|
      h[k] = deep_copy(v)
      h
    end
  when Array
    obj.map { |v| deep_copy(v) }
  else
    if obj.respond_to?(:dup)
      obj.dup
    elsif obj.respond_to?(:clone)
      obj.clone
    else
      obj
    end
  end
end

.deep_merge(left, right) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



8
9
10
11
12
13
14
# File 'lib/aws-sdk-core/util.rb', line 8

def deep_merge(left, right)
  case left
  when Hash then left.merge(right) { |key, v1, v2| deep_merge(v1, v2) }
  when Array then right + left
  else right
  end
end

.monotonic_millisecondsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



47
48
49
50
51
52
53
# File 'lib/aws-sdk-core/util.rb', line 47

def monotonic_milliseconds
  if defined?(Process::CLOCK_MONOTONIC)
    Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
  else
    DateTime.now.strftime('%Q').to_i
  end
end

.str_2_bool(str) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



55
56
57
58
59
60
61
62
# File 'lib/aws-sdk-core/util.rb', line 55

def str_2_bool(str)
  case str.to_s
  when "true" then true
  when "false" then false
  else
    nil
  end
end