def load_spec_files
index = Index.new
if File.directory?(path)
Dir["#{path}/#{@glob}"].each do |file|
file = Pathname.new(file)
spec = Dir.chdir(file.dirname) do
begin
Gem::Specification.from_yaml(file.basename)
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