Class: Julewire::Core::Serialization::ValueCopy
- Inherits:
-
Object
- Object
- Julewire::Core::Serialization::ValueCopy
- Defined in:
- lib/julewire/core/serialization/value_copy.rb
Constant Summary collapse
- CIRCULAR_REFERENCE =
Core::CIRCULAR_REFERENCE
Class Method Summary collapse
-
.call(value, compact_empty: false, freeze_values: false, max_array_items: nil, max_depth: NORMALIZATION_MAX_DEPTH, max_hash_keys: nil, max_string_bytes: nil, preserve_truncation_metadata: false, symbolize_keys: false) ⇒ Object
rubocop:disable Metrics/ParameterLists.
- .omitted_empty?(value) ⇒ Boolean
Instance Method Summary collapse
- #call(value) ⇒ Object
-
#initialize(compact_empty:, freeze_values:, max_array_items:, max_depth:, max_hash_keys:, max_string_bytes:, preserve_truncation_metadata:, symbolize_keys:) ⇒ ValueCopy
constructor
A new instance of ValueCopy.
Constructor Details
#initialize(compact_empty:, freeze_values:, max_array_items:, max_depth:, max_hash_keys:, max_string_bytes:, preserve_truncation_metadata:, symbolize_keys:) ⇒ ValueCopy
Returns a new instance of ValueCopy.
106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/julewire/core/serialization/value_copy.rb', line 106 def initialize(compact_empty:, freeze_values:, max_array_items:, max_depth:, max_hash_keys:, max_string_bytes:, preserve_truncation_metadata:, symbolize_keys:) @compact_empty = compact_empty @freeze_values = freeze_values @max_array_items = validate_optional_limit(max_array_items, name: :max_array_items) @max_depth = max_depth @max_hash_keys = validate_optional_limit(max_hash_keys, name: :max_hash_keys) @max_string_bytes = validate_optional_limit(max_string_bytes, name: :max_string_bytes) @preserve_truncation_metadata = @symbolize_keys = symbolize_keys @track_truncation = @max_array_items || @max_hash_keys || @max_string_bytes end |
Class Method Details
.call(value, compact_empty: false, freeze_values: false, max_array_items: nil, max_depth: NORMALIZATION_MAX_DEPTH, max_hash_keys: nil, max_string_bytes: nil, preserve_truncation_metadata: false, symbolize_keys: false) ⇒ Object
rubocop:disable Metrics/ParameterLists
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/julewire/core/serialization/value_copy.rb', line 78 def call( # rubocop:disable Metrics/ParameterLists value, compact_empty: false, freeze_values: false, max_array_items: nil, max_depth: NORMALIZATION_MAX_DEPTH, max_hash_keys: nil, max_string_bytes: nil, preserve_truncation_metadata: false, symbolize_keys: false ) new( compact_empty:, freeze_values:, max_array_items:, max_depth:, max_hash_keys:, max_string_bytes:, preserve_truncation_metadata:, symbolize_keys: ).call(value) end |
.omitted_empty?(value) ⇒ Boolean
101 102 103 |
# File 'lib/julewire/core/serialization/value_copy.rb', line 101 def omitted_empty?(value) value.nil? || (value.is_a?(Hash) && value.empty?) || (value.is_a?(Array) && value.empty?) end |