私がやったことは、メソッドが最初に呼び出されたときにのみ、 self.site
andself.format
とをオーバーライドしself.connection
て、環境定数を検索できるようにすることでした。
module MyActiveResource
# A flag to indicate whether the environment variable has already been sought
attr_accessor :active_record_fields_set
# Set site & format if not set
def connection(refresh=false)
set_my_active_record_fields unless active_record_fields_set
super(refresh)
end
# Set site & format if not set
def site
set_my_active_record_fields unless active_record_fields_set
super
end
# Set site & format if not set
def format
set_my_active_record_fields unless active_record_fields_set
super
end
# Set site & format
def set_my_active_record_fields
self.active_record_fields_set = true
self.site = MY_CONSTANT
self.format = ActiveResource::Formats::XmlFormat
end
end
MyActiveResource
次に、から派生するクラスを拡張しActiveResource::Base
ます。