Модули служат двойному назначению как держатель функций и как пространство имен. Хранение классов в модулях вполне приемлемо. Чтобы поместить класс в отдельный файл, просто определите класс как обычно, а затем в файле, в котором вы хотите использовать класс, просто поместите require 'name_of_file_with_class'
вверху. Например, если бы я определил класс Foo
в foo.rb
, в bar.rb
у меня была бы строка require 'foo'
.
Если вы используете Rails, это включение часто происходит автоматически
Редактировать: уточнение формата файла
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
...
#file: bar.rb
require 'foo'
Foo.new
Если вы находитесь в Rails, поместите эти классы в lib/
и используйте соглашение об именах для файлов строчной версии имени класса с подчеркиванием, например, Foo
-> foo.rb
, FooBar
-> foo_bar.rb
и т. Д.
Начиная с ruby версии 1.9, вы можете использовать require_relative
, чтобы запрашивать файлы относительно файла, который вы редактируете.