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
-
.deserialize_number(str) ⇒ Number
private
The input as a number.
- .deserialize_time(value) ⇒ Time private
- .monotonic_milliseconds ⇒ Object private
- .monotonic_seconds ⇒ Object private
-
.serialize_number(input) ⇒ Number, String
private
The serialized number.
- .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 |
.deserialize_number(str) ⇒ Number
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.
Returns The input as a number.
83 84 85 86 87 88 89 90 91 |
# File 'lib/aws-sdk-core/util.rb', line 83 def deserialize_number(str) case str when 'Infinity' then ::Float::INFINITY when '-Infinity' then -::Float::INFINITY when 'NaN' then ::Float::NAN when nil then nil else str.to_f end end |
.deserialize_time(value) ⇒ Time
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.
95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/aws-sdk-core/util.rb', line 95 def deserialize_time(value) case value when nil then nil when /^[\d.]+$/ then Time.at(value.to_f).utc else begin fractional_time = Time.parse(value).to_f Time.at(fractional_time).utc rescue ArgumentError raise "unhandled timestamp format `#{value}'" end 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 |
.serialize_number(input) ⇒ Number, String
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.
Returns The serialized number.
72 73 74 75 76 77 78 79 |
# File 'lib/aws-sdk-core/util.rb', line 72 def serialize_number(input) if input == ::Float::INFINITY then 'Infinity' elsif input == -::Float::INFINITY then '-Infinity' elsif input&.nan? then 'NaN' else input 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.
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 |