Sha256: 7396bcf0ce0c90bd8520b8ec9796b69dd19cad4946ded7ac1eba11b6af1adfa0

Contents?: true

Size: 624 Bytes

Versions: 10

Compression:

Stored size: 624 Bytes

Contents

module Kernel

  # For debugging and showing examples. Currently this
  # takes an argument of a string in a block.
  #
  #   demo {%{ a = [1,2,3] }}
  #   demo {%{ a.slice(1,2) }}
  #   demo {%{ a.map { |x| x**3 } }}
  #
  # Produces:
  #
  #   a = [1,2,3]             #=>  [1, 2, 3]
  #   a.slice(1,2)            #=>  [2, 3]
  #   a.map { |x| x**3 }      #=>  [1, 8, 27]
  #
  # TODO: Is there a way to do this without the eval string in block?
  # Preferably just a block and no string.

  def demo(out=$stdout,&block)
    out << sprintf("%-25s#=>  %s\n", expr = block.call, eval(expr, block.binding).inspect)
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
facets-2.8.4 lib/core/facets/kernel/demo.rb
facets-2.8.3 lib/core/facets/kernel/demo.rb
facets-2.8.2 lib/core/facets/kernel/demo.rb
facets-2.8.1 lib/core/facets/kernel/demo.rb
facets-2.8.0 lib/core/facets/kernel/demo.rb
facets-2.7.0 lib/core/facets/kernel/demo.rb
facets-2.6.0 lib/core/facets/kernel/demo.rb
facets-2.5.1 lib/core/facets/kernel/demo.rb
facets-2.5.0 lib/core/facets/kernel/demo.rb
facets-2.5.2 lib/core/facets/kernel/demo.rb