>>>>>
def define_my_method(method_name)
  define_method method_name do
    yield
  end
end

class X
  define_my_method :method1 do
    puts "Method 1"
  end
  define_my_method :method2 do
    puts "Method 2"
    method1
  end
end

X.new.method2
<<<<<

Gives:

C:\wrk\johnk\wiksprint-001>define.rb
Method 2
C:/wrk/johnk/wiksprint-001/define.rb:13: undefined local variable or method `met
hod1' for X:Class (NameError)
        from C:/wrk/johnk/wiksprint-001/define.rb:3:in `method2'
        from C:/wrk/johnk/wiksprint-001/define.rb:17