procs/symbol_blocks.rb

tests/_examples/procs/symbol_blocks.rb in the metorex repository.

labels = [1, 2].map(&:to_s)
p(labels)
p([3, 4].map(&:succ))
p(:+.to_proc.call(1, 2))

def handle = yield

begin
  handle(&:upcase)
rescue ArgumentError => error
  p(error.message)
end

begin
  :upcase.to_proc.call
rescue ArgumentError => error
  p(error.message)
end

begin
  [1].map(&:missing_name)
rescue NoMethodError => error
  p(error.backtrace.last.sub(/\A.*:(\d+):/, 'line \1:'))
end

shout = :upcase.to_proc
begin
  shout.call(1)
rescue NoMethodError => error
  p(error.backtrace.map { |line| line.sub(/\A.*:(\d+):/, 'line \1:') })
end

flag = true
p(flag &:anything)
mask = 6
bits = 3
p(mask &bits)

Output:

["1", "2"]
[4, 5]
3
"no receiver given"
"no receiver given"
"line 21:in '<main>'"
["line 28:in '<main>'"]
true
2