class Bundler::Source::Path
def load_spec_files
def load_spec_files index = Index.new if File.directory?(path) Dir["#{path}/#{@glob}"].each do |file| file = Pathname.new(file) # Eval the gemspec from its parent directory spec = Dir.chdir(file.dirname) do begin Gem::Specification.from_yaml(file.basename) # Raises ArgumentError if the file is not valid YAML rescue ArgumentError, Gem::EndOfYAMLException, Gem::Exception begin eval(File.read(file.basename), TOPLEVEL_BINDING, file.expand_path.to_s) rescue LoadError raise GemspecError, "There was a LoadError while evaluating #{file.basename}.\n" + "Does it try to require a relative path? That doesn't work in Ruby 1.9." end end end if spec spec = Specification.from_gemspec(spec) spec.loaded_from = file.to_s spec.source = self index << spec end end if index.empty? && @name && @version index << Specification.new do |s| s.name = @name s.source = self s.version = Gem::Version.new(@version) s.summary = "Fake gemspec for #{@name}" s.relative_loaded_from = "#{@name}.gemspec" if path.join("bin").exist? binaries = path.join("bin").children.map{|c| c.basename.to_s } s.executables = binaries end end end else raise PathError, "The path `#{path}` does not exist." end index end