Код «внутри класса» запускается точно так же, как и любой другой код. Если у вас есть Ruby-файл, как это:
puts "Hello from #{self}"
class Foo
puts "Hello from #{self}"
end
и запустить файл (либо через ruby foo.rb
в командной строке или require "./foo"
или load "foo.rb"
в скрипте) его, то вы увидите результат:
Привет из главного
Здравствуйте от Foo
Если вы хотите загрузить утилиту, которая «делает что-то», что вы можете вызывать из РЕПЛ как IRB или R Консоль беспокоит, то сделайте следующее:
module MyStuff
def self.do_it
# your code here
end
end
Вы можете require "./mystuff"
загрузить код, и когда вы будете готовы запустить его тип MyStuff.do_it
И, как вы можете догадаться, вы также можете создать методы которые принимают аргументы.
Если вы хотите, чтобы определить файл, который может быть включен в других (без непосредственных побочных эффектов), но которые также «делает свое дело», когда файл запускается сам по себе, вы можете сделать это:
module MyStuff
def self.run!
# Go
end
end
MyStuff.run! if __FILE__==$0
Теперь, если вы require
или load
этот файл, метод run!
не будет вызываться, но если вы наберете ruby mystuff.rb
из командной строки, он будет.
Есть ли какие-либо сомнения в отношении моего вопроса? –
Да, есть сомнения. Я лично не знаю, что вы имеете в виду. Что вы хотите сделать? Почему весь этот код внутри класса? – Phrogz
seconded @Phrogz – Josh