Ответ 1
Модули служат двойной целью как держатель для функций и как пространство имен. Сохранение классов в модулях вполне приемлемо. Чтобы поместить класс в отдельный файл, просто определите класс как обычно, а затем в файле, в котором вы хотите использовать класс, просто поместите 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
, чтобы требовать файлы относительно файла, который вы редактируете.