require 'test/unit' class Arity   def a;           end   def b(a);        end   def c(*a);       end   def d(a, b);     end   def e(a, b, *c); end   def f(a, &d);    end   def n_args(symbol)     method(symbol).arity   end end class ArityTests < Test::Unit::TestCase   def setup     @demo = Arity.new   end   def test_fixed     assert(@demo.n_args(:a), 0)     assert(@demo.n_args(:b), 1)     assert(@demo.n_args(:d), 2)   end   def test_variable     assert(@demo.n_args(:c), -1)     assert(@demo.n_args(:e), -3)   end   def test_code     assert(@demo.n_args(:f), 1)   end end