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),