Class: Julewire::Core::Processing::RecordFieldTransform

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/core/processing/record_field_transform.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(max_array_items: nil, max_depth: nil, max_hash_keys: nil, max_string_bytes: nil, preserve_top_level_keys: nil, track_paths: false) ⇒ RecordFieldTransform

Returns a new instance of RecordFieldTransform.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/julewire/core/processing/record_field_transform.rb', line 26

def initialize(
  max_array_items: nil,
  max_depth: nil,
  max_hash_keys: nil,
  max_string_bytes: nil,
  preserve_top_level_keys: nil,
  track_paths: false
)
  @bounded_options = bounded_options(
    max_array_items: max_array_items,
    max_depth: max_depth,
    max_hash_keys: max_hash_keys,
    max_string_bytes: max_string_bytes
  )
  @preserve_top_level_key_set = Array(preserve_top_level_keys).to_h { [it, true] }
  @track_paths = track_paths
end

Class Method Details

.container_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


21
# File 'lib/julewire/core/processing/record_field_transform.rb', line 21

def container_key?(key) = CONTAINER_KEY_SET.key?(key)

.container_keysObject



17
# File 'lib/julewire/core/processing/record_field_transform.rb', line 17

def container_keys = CONTAINER_KEYS

.scalar_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


23
# File 'lib/julewire/core/processing/record_field_transform.rb', line 23

def scalar_key?(key) = SCALAR_KEY_SET.key?(key)

.scalar_keysObject



19
# File 'lib/julewire/core/processing/record_field_transform.rb', line 19

def scalar_keys = SCALAR_KEYS

Instance Method Details

#call(record) ⇒ Object



44
45
46
47
48
# File 'lib/julewire/core/processing/record_field_transform.rb', line 44

def call(record, &)
  record.each_with_object({}) do |(key, value), result|
    result[key] = transform_record_field(key, value, record, &)
  end
end