Class: Enumerator

Inherits:
Object show all
Defined in:
lib/matisse/colorizers/enumerator.rb

Instance Method Summary collapse

Instance Method Details

#inspect_colorizedObject

TODO: eval is evil (hence the name), find a different approach!



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/matisse/colorizers/enumerator.rb', line 4

def inspect_colorized
  inspect =~ /^(#<)(Enumerator)(: )(.*)(:)([A-z_]+)((\()(.*)(\)))?(>)$/
  res  = $1.colorize(:object_delimiter  ) # (#<)
  res += $2.colorize(:class             ) # (Enumerator)
  res += $3.colorize(:object_separator  ) # (: )
  if $4.include?('Generator')             # (.*)
    res += ::Object.colorize_str($4)
  else
    res += eval($4).inspect_colorized
  end
  res += $5.colorize(:object_separator  ) # (:)
  res += $6.colorize(:enumerator        ) # ([A-z_]+)
  unless $7.nil?                          # ((\()(.*)(\)))?
    res += $8.colorize(:enumerator      ) #   (\()
    args = $9.split(',').map{|x|eval(x)}  #   (.*)
    res += args.map(&:inspect_colorized).join(','.colorize(:enumerator_arg_separator))
    res += $10.colorize(:enumerator     ) #   (\))
  end
  res += $11.colorize(:object_delimiter ) # (>)
end