以下を考えると:
module RESTable
BASE_URL = "http://url.domain/api/rest"
LOGIN_URL = "#{BASE_URL}/login"
LOGOUT_URL = "#{BASE_URL}/logout"
def request_url
"#{BASE_URL}/mbo/#{@@object_resource}/_format=json"
rescue NameError
p "@@object_resource was not defined"
end
end
class ServiceRequests
include RESTable
@@object_resource = "sr"
def initialize
binding.pry
end
end
pry セッションで request_url を呼び出すと、次の結果が得られます。
"@@object_resource was not defined"
ただし、@@object_resource は "sr" として設定されます。
アイデアは、各クラスに RESTable モジュールをインクルードするだけで、request_url を呼び出すと、インクルード元のクラスの @@object_resource に基づいて適切な URL が得られるというものです。
より一般的には、モジュール内からクラス変数を呼び出すにはどうすればよいですか?