lib/itamae/recipe.rb in itamae-1.0.0.beta31 vs lib/itamae/recipe.rb in itamae-1.0.0.beta32
- old
+ new
@@ -67,18 +67,20 @@
recipe = Recipe.new(@runner, target)
@children << recipe
end
def find_recipe_from_load_path(recipe)
- target = recipe.gsub(/::/, '/')
+ target = recipe.gsub('::', '/')
target += '.rb' if target !~ /\.rb$/
plugin_name = recipe.split('::')[0]
- $LOAD_PATH.find do |path|
- if path =~ %r{/itamae-plugin-recipe-#{plugin_name}}
- return File.join(path, 'itamae', 'plugin', 'recipe', target)
- end
+ spec = Gem.loaded_specs.values.find do |spec|
+ spec.name == "itamae-plugin-recipe-#{plugin_name}"
end
+
+ return nil unless spec
+
+ File.join(spec.lib_dirs_glob, 'itamae', 'plugin', 'recipe', target)
end
def define(name, params = {}, &block)
Resource.const_set(
Resource.get_resource_class_name(name),