Sha256: c782ad145344a5d759a3415f49d4e717537ee80e6e4cd6a7e9e90b172ad79e56

Contents?: true

Size: 990 Bytes

Versions: 16

Compression:

Stored size: 990 Bytes

Contents

module Kernel

  module_function

  # 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]
  #
  #--
  # 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


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
=begin test

  require 'test/unit'

  class TCKernel < Test::Unit::TestCase

    def test_demo
      demo(i=''){%{ a = [1,2,3] }}
      o = " a = [1,2,3]             #=>  [1, 2, 3]\n"
      assert_equal( o, i )
    end

  end

=end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
facets-1.4.0 lib/facets/core/kernel/demo.rb
facets-1.4.1 lib/facets/core/kernel/demo.rb
facets-1.4.2 lib/facets/core/kernel/demo.rb
facets-1.4.3 lib/facets/core/kernel/demo.rb
facets-1.4.4 lib/facets/core/kernel/demo.rb
facets-1.4.5 lib/facets/core/kernel/demo.rb
facets-1.7.38 lib/facets/core/kernel/demo.rb
facets-1.7.0 lib/facets/core/kernel/demo.rb
facets-1.7.30 lib/facets/core/kernel/demo.rb
facets-1.7.46 lib/facets/core/kernel/demo.rb
facets-1.8.49 lib/facets/core/kernel/demo.rb
facets-1.8.0 lib/facets/core/kernel/demo.rb
facets-1.8.20 lib/facets/core/kernel/demo.rb
facets-1.8.51 lib/facets/core/kernel/demo.rb
facets-1.8.54 lib/facets/core/kernel/demo.rb
facets-1.8.8 lib/facets/core/kernel/demo.rb