2012-07-31 1 views
2

나는 Spree의 소스 코드를 연구 중이며 스 니펫을 발견했습니다.Spree.config는 어떻게 구현됩니까?

Spree.config do |config| 
    # Example: 
    # Uncomment to override the default site name. 
    # config.site_name = "Spree Demo Site" 
end 

어떻게 구현 되나요? 어디서나 정의 된 Spree.config를 찾을 수 없습니다. 일부 메타 프로그래밍이 관련되어 있다고 생각합니다.

답변

3

https://github.com/spree/spree/blob/master/core/lib/spree/core.rb (현재 68 번 라인)에 정의 된 것처럼 보입니다.

configSpree 모듈의 모듈 방법입니다. 구현은 Spree::Config 객체를 주어진 블록으로 전달합니다.

+0

감사합니다. 스티브. 이것은'Spree :: Config'가 임의의 객체라는 것을 의미합니까? 콘솔에'Spree :: Config'라고 입력하면'# '을 반환합니다. 나는'Spree :: Config'와'Spree :: AppConfiguration'을 연결하는 코드를 보지 못했다. –

+1

'Config'는 https://github.com/spree/spree/blob/master/core/lib/spree/core/engine.rb에서 설정되는'Spree'에서 상수 일 뿐인 것처럼 보입니다 (줄 41)을 Rails 엔진의 초기화의 일부로 사용합니다. 'AppConfiguration' 객체는 https://github.com/spree/spree/blob/master/core/lib/spree/core/environment.rb에서 생성됩니다. – Steve