모듈을 포함하는 클래스에 대해 DSL 구성을 만들려고 시도했지만 클래스와 인스턴스 메소드 모두에 대해 구성된 변수를 사용하려면 액세스 메소드로 모듈을 버려야하는 것처럼 보입니다. 이 일을 더 우아한 방법이 있습니까?루비 클래스 인스턴스 변수 설정 패턴
module DogMixin
class << self
def included(base)
base.extend ClassMethods
end
end
module ClassMethods
def breed(value)
@dog_breed = value
end
def dog_breed
@dog_breed
end
end
end
class Foo
include DogMixin
breed :havanese
end
puts Foo.dog_breed
# not implemented but should be able to do this as well
f = Foo.new
f.dog_breed
아직 질문을 완전히받지 못했습니다. 'f = Foo.new에서 기대할 수있는 결과는 무엇입니까? f.dog_breed = : 침팬지; Foo.dog_breed'를 넣으시겠습니까? 반원들에게 어떤 상수제가 도움이됩니까? – Felix