Les modules servent à la fois de support pour les fonctions et d'espace de noms. Garder les classes dans les modules est parfaitement acceptable. Pour mettre une classe dans un fichier séparé, il suffit de définir la classe comme d'habitude, puis dans le fichier où vous souhaitez utiliser la classe, mettez simplement require 'name_of_file_with_class'
en haut. Par exemple, si j'ai défini la classe Foo
dans foo.rb
, dans bar.rb
j'aurais la ligne require 'foo'
.
Si vous utilisez Rails, cela arrive souvent comprennent automagiquement
Edit: clarification de la mise en page du fichier
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
...
#file: bar.rb
require 'foo'
Foo.new
Si vous êtes dans Rails, mettez ces classes dans lib/
et d'utiliser la convention de nommage pour les fichiers de la version underscored minuscule du nom de classe, par exemple Foo
->foo.rb
, FooBar
->foo_bar.rb
, etc.
de la version 1.9 rubis, vous pouvez utiliser require_relative
, pour exiger des fichiers relativement au fichier que vous modifiez.
Ce message clarifie l'expression require_relative dans le cas où vous rencontrez des problèmes avec l'exemple ci-dessus lorsque sur Ruby> = 1.9.2 [Ruby require_relative example] (http://stackoverflow.com/questions/3672586/what-is -require-relative-en-rubis) – Dirk