Top Level Namespace
Instance Method Summary collapse
-
#pv(&block) ⇒ Object
Print variable with variable name & variable value.
Instance Method Details
#pv(&block) ⇒ Object
Print variable with variable name & variable value.
Usage
var = 1
var2, var_foo, v = 2, 3, 4
pv{:var} #=> var = 1
pv{i(var2 var_foo v)} #=> var2 = 2
# var_foo = 3
# v = 4
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/pv.rb', line 17 def pv(&block) ret = block.call symbols = if ret.is_a?(Symbol) [ret] elsif ret.is_a?(Array) and ret.all?{|x| x.is_a?(Symbol)} ret else raise "Given block must return Symbol or Array only includes Symbol" end varname_length = symbols.map{|symbol| symbol.to_s.length}.max symbols.each do |symbol| puts "#{symbol.to_s.ljust(varname_length)} = #{block.binding.eval(symbol.to_s)}" end ret end |