class BindingDumper::Dumpers::ArrayDumper

Class responsible for converting arrays to marshalable Hash

@example

array = [1,2,3]
dump = BindingDumper::Dumpers::Array.new(array).convert
# => { marshalable: :hash }
BindingDumper::Dumpers::Array.new(dump).deconvert
# => [1,2,3]

Public Instance Methods

can_convert?() click to toggle source

Returns true if ArrayDumper can convert abstract_object

@return [true, false]

# File lib/binding_dumper/dumpers/array_dumper.rb, line 18
def can_convert?
  array.is_a?(Array)
end
can_deconvert?() click to toggle source

Returns true if ArrayDumper can deconvert abstract_object

@return [true, false]

# File lib/binding_dumper/dumpers/array_dumper.rb, line 26
def can_deconvert?
  array.is_a?(Array)
end
convert() click to toggle source

Converts abstract_object to marshalable Hash

@return [Hash]

# File lib/binding_dumper/dumpers/array_dumper.rb, line 34
def convert
  unless should_convert?
    return { _existing_object_id: array.object_id }
  end

  dumped_ids << array.object_id

  result = array.map do |item|
    UniversalDumper.convert(item, dumped_ids)
  end

  {
    _old_object_id: array.object_id,
    _object_data: result
  }
end
deconvert() { |result| ... } click to toggle source

Deconverts passed abstract_object back to the original state

@return [Array]

# File lib/binding_dumper/dumpers/array_dumper.rb, line 55
def deconvert
  result = []
  yield result
  array.each do |converted_item|
    result << UniversalDumper.deconvert(converted_item)
  end
  result
end