def set_jeweler_defaults(base_dir, git_base_dir = nil)
base_dir = File.expand_path(base_dir)
git_base_dir = if git_base_dir
File.expand_path(git_base_dir)
else
base_dir
end
can_git = git_base_dir && base_dir.include?(git_base_dir) && File.directory?(File.join(git_base_dir, '.git'))
Dir.chdir(git_base_dir) do
repo = if can_git
require 'git'
Git.open(git_base_dir)
end
if blank?(files) && repo
base_dir_with_trailing_separator = File.join(base_dir, "")
ignored_files = repo.lib.ignored_files + [".gitignore"]
self.files = (repo.ls_files(base_dir).keys - ignored_files).compact.map do |file|
File.expand_path(file).sub(base_dir_with_trailing_separator, "")
end
end
if blank?(test_files) && repo
self.test_files = FileList['{spec,test,examples}/**/*.rb'] - repo.lib.ignored_files
end
if blank?(executables) && repo
self.executables = (repo.ls_files(File.join(base_dir, 'bin')).keys - repo.lib.ignored_files).map do |file|
File.basename(file)
end
end
if blank?(extensions)
self.extensions = FileList['ext/**/{extconf,mkrf_conf}.rb']
end
if blank?(extra_rdoc_files)
self.extra_rdoc_files = FileList['README*', 'ChangeLog*', 'LICENSE*', 'TODO']
end
if File.exist?('Gemfile')
require 'bundler'
bundler = Bundler.load
bundler.dependencies_for(:default, :runtime).each do |dependency|
self.add_dependency dependency.name, *dependency.requirement.as_list
end
bundler.dependencies_for(:development).each do |dependency|
self.add_development_dependency dependency.name, *dependency.requirement.as_list
end
end
end
end