Необязательные символы в Ruby для метода с заглавной буквой в верхнем регистре?

Я только начал использовать IronRuby (но поведение, кажется, непротиворечивое, когда я тестировал его на простом Ruby) для DSL в моем приложении .NET - и как часть этого я определяю методы, которые будут вызываться из DSL через define_method.

Тем не менее, я столкнулся с проблемой, связанной с необязательными паренами при вызове методов, начинающихся с заглавной буквы.

Учитывая следующую программу:

class DemoClass
    define_method :test do puts "output from test" end
    define_method :Test do puts "output from Test" end

    def run
        puts "Calling 'test'"
        test()
        puts "Calling 'test'"
        test
        puts "Calling 'Test()'"
        Test()
        puts "Calling 'Test'"
        Test
    end
end

demo = DemoClass.new
demo.run

Запуск этого кода в консоли (с использованием обычного ruby) приводит к следующему выводу:

ruby .\test.rb
Calling 'test'
output from test
Calling 'test'
output from test
Calling 'Test()'
output from Test
Calling 'Test'
./test.rb:13:in `run': uninitialized constant DemoClass::Test (NameError)
    from ./test.rb:19:in `<main>'

Я понимаю, что соглашение Ruby состоит в том, что константы начинаются с заглавной буквы, а общее соглашение об именах для методов в Ruby строчное. Но парни действительно убивают мой синтаксис DSL в данный момент.

Есть ли способ обойти эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос