Module: ArtirixDataModels::Inspectable

Included in:
CommonAggregation
Defined in:
lib/artirix_data_models/inspectable.rb

Constant Summary collapse

SPACE =
' '.freeze

Instance Method Summary collapse

Instance Method Details

#data_hash_for_inspectObject



9
10
11
# File 'lib/artirix_data_models/inspectable.rb', line 9

def data_hash_for_inspect
  data_hash
end

#inspectObject



5
6
7
# File 'lib/artirix_data_models/inspectable.rb', line 5

def inspect
  inspect_with_tab 1
end

#inspect_with_tab(tab_level = 0) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/artirix_data_models/inspectable.rb', line 13

def inspect_with_tab(tab_level = 0)
  insp = data_hash_for_inspect.map do |at, val|
    tab = SPACE * tab_level * 4

    if val.kind_of? Array
      nested = val.map do |vi|
        nested_tab = SPACE * (tab_level + 1) * 4
        nv         = vi.try(:inspect_with_tab, tab_level + 2) || vi.inspect
        "#{nested_tab} - #{nv}"
      end

      "#{tab} - #{at}: [\n#{nested.join("\n")}\n#{tab}   ]"

    else
      v = val.try(:inspect_with_tab, tab_level + 1) || val.inspect
      "#{tab} - #{at}: #{v}"
    end
  end
  "#<#{self.class}\n#{insp.join("\n")}>"
end