Ruby-Module und Klassen gleichen Namen in der Struktur

Habe ich eine Ordner-Struktur wie die folgende in einem meiner Projekte:

  • lib
    • bar.rb
    • bar
      • other_bar.rb
      • another_bar.rb
      • next_bar.rb
      • ...

bar.rb

require File.expand_path(File.dirname(__FILE__) + "/bar/other_bar.rb")

class Bar
  puts "running BarBase"
end

bar/other_bar.rb

module Bar
  class OtherBar
    puts "running module Bar with class OtherBar"
  end
end

Wenn ich starte jetzt ruby bar.rb ich dieses:

ausführen von Modul-Leiste mit Klasse OtherBar
bar.rb:3:: Bar ist nicht eine Klasse (TypeError)

Ich würde gerne eine ähnliche Struktur wie eine rails-Modells vererbungsstruktur. Wie kann ich dieses Problem beheben? So weit ich weiß, ruby unterstützt dies nicht out of the box. Gibt es eine Abhilfe für so eine situation?

InformationsquelleAutor der Frage Mattherick | 2012-11-07

Schreibe einen Kommentar