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
- .copy_hash(hash) ⇒ Object private
- .deep_copy(obj) ⇒ Object private
- .deep_merge(left, right) ⇒ Object private
- .monotonic_milliseconds ⇒ Object private
- .monotonic_seconds ⇒ Object private
- .str_2_bool(str) ⇒ Object private
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.
18 19 20 21 22 23 24 |
# File 'lib/aws-sdk-core/util.rb', line 18 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.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/aws-sdk-core/util.rb', line 26 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.
10 11 12 13 14 15 16 |
# File 'lib/aws-sdk-core/util.rb', line 10 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_milliseconds ⇒ 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.
49 50 51 52 53 54 55 |
# File 'lib/aws-sdk-core/util.rb', line 49 def monotonic_milliseconds if defined?(Process::CLOCK_MONOTONIC) Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond) else DateTime.now.strftime('%Q').to_i end end |
.monotonic_seconds ⇒ 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.
57 58 59 |
# File 'lib/aws-sdk-core/util.rb', line 57 def monotonic_seconds monotonic_milliseconds / 1000.0 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.
61 62 63 64 65 66 67 68 |
# File 'lib/aws-sdk-core/util.rb', line 61 def str_2_bool(str) case str.to_s when "true" then true when "false" then false else nil end end |