Ruby에서 Foo라는 클래스는 class Foo
으로 정의되며, require 'foo'
을 통해 사용되며 $:[0]/foo.rb
또는 그와 비슷한 형태로 존재합니다.Ruby에서 어떻게 계층 적 클래스 이름을 만드나요?
하지만 무엇에 대해 Foo::Bar
? require 'foo/bar'
으로 전화를 걸겠습니까? $:[0]/foo/bar.rb
에 살고 싶습니까? 어떻게 정의 될까요?
나는 매우 개인적인 프로젝트를 위해 내가 다음 package Project::Text::Index
시작할 것이다, Project/Text/Index.pm
같은 파일을 만들 것, 그리고 use Project::Text::Index;
를 통해 호출 할 수 Project::User
, Project::Text::Index
, Project::Text::Search
등과 같은 중첩 된 클래스를 만들 것 펄에 사용하고있다.
이제 Ruby에서 프로젝트를 시작하고이를 수행하는 방법을 모릅니다. 웬일인지 루비 책이나 필자가 읽은 문서 중 펄 스타일의 계층 적 클래스 이름에 대해서는 언급하지 않았다. 그들이 상속을 언급 할 때 그것은 보통 나를 돕지 않는 class Foo < Bar
과 같은 사소한 예를 통해 이루어진다. 그러나 Rails가 단지 하나의 예제를 취하기 때문에 ActionView::Helpers::ActiveModelFormBuilder
과 같은 클래스를 가지고 있기 때문에 내가 시도하고있는 것을 수행 할 수 있어야한다고 생각한다.
좋은 답변이지만 파일 이름 (및 필수)은 funcase/text/index.rb이어야합니다. – tokland
모듈 내부의 클래스 중첩과 클래스 내부 중첩의 차이에 대한 의견이 있으십니까? 이 모듈 예제는 클래스 정의로만 주어질 수 있습니다. –