From a49c94c4ddfb6153f1cadbb279da1b8357c175f1 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Sun, 6 Dec 2015 23:24:47 +0900 Subject: [PATCH] Fallback to autoload resource plugin --- lib/itamae/resource.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/itamae/resource.rb b/lib/itamae/resource.rb index 92d7c20e..5c2d3321 100644 --- a/lib/itamae/resource.rb +++ b/lib/itamae/resource.rb @@ -34,11 +34,20 @@ def get_resource_class(method) begin ::Itamae::Plugin::Resource.const_get(to_camel_case(method.to_s)) rescue NameError - raise Error, "#{method} resource is missing." + autoload_plugin_resource(method) end end end + def autoload_plugin_resource(method) + begin + require "itamae/plugin/resource/#{method}" + ::Itamae::Plugin::Resource.const_get(to_camel_case(method.to_s)) + rescue LoadError, NameError + raise Error, "#{method} resource is missing." + end + end + def define_resource(name, klass) class_name = to_camel_case(name.to_s) if Resource.const_defined?(class_name)