Moduły mają podwójny cel jako uchwyt dla funkcji i jako przestrzeń nazw. Prowadzenie zajęć w modułach jest całkowicie dopuszczalne. Aby umieścić klasę w oddzielnym pliku, po prostu zdefiniuj klasę jak zwykle, a następnie w pliku, w którym chcesz użyć klasy, po prostu umieść u góry require 'name_of_file_with_class'
. Na przykład, jeśli zdefiniowałem klasę Foo
w foo.rb
, w bar.rb
, będę miał linię require 'foo'
.
Jeśli używasz szyny, to to się często zdarza automagicznie
Edit: wyjaśnienie układ plików
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
...
#file: bar.rb
require 'foo'
Foo.new
Jeśli jesteś w Rails, umieścić je klasy w lib/
i użyj konwencji nazewnictwa dla plików z małymi, podkreślonymi wersjami nazwy klasy, np. Foo
->foo.rb
, FooBar
->foo_bar.rb
itp
Jako ruby wersji 1.9 można użyć require_relative
, wymagają stosunkowo plików do pliku, który edytujesz.
Ten wpis wyjaśnia wyrażenie require_relative w przypadku problemów z powyższym przykładem, gdy Ruby> = 1.9.2 [Ruby require_relative example] (http://stackoverflow.com/questions/3672586/what-is -require-relative-in-ruby) – Dirk