5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/rstack/tasks/gem.rb', line 5
def self.define_tasks(configuration)
spec = ::Gem::Specification.new do |s|
s.name = configuration.gem_name
s.version = configuration.version
s.platform = configuration.platform
s.summary = configuration.summary
s.author = configuration.author
s.email = configuration.email
s.homepage = configuration.url
unless configuration.gem_name == 'rstack'
s.add_development_dependency "rstack", ">= #{RStack::Version::STRING}"
end
s.add_dependency 'rake', '>= 0.8.1'
s.add_development_dependency 'rcov', '>= 0.8.0'
s.add_development_dependency 'diff-lcs', '>= 1.1.2'
s.add_development_dependency 'rspec', '>= 1.1.3'
configuration.dependencies.each do |dependency, version|
s.add_dependency dependency, version
end
configuration.runtime_dependencies.each do |dependency, version|
s.add_runtime_dependency dependency, version
end
configuration.development_dependencies.each do |dependency, version|
s.add_development_dependency dependency, version
end
s.files = configuration.files
s.executables = configuration.executables
s.require_path = configuration.require_path
s.has_rdoc = configuration.has_rdoc
end
::Rake::GemPackageTask.new(spec) { |p| p.gem_spec = spec }
desc "Install dependencies for development."
task :setup do
gems = ::Gem::SourceIndex.from_installed_gems
spec.dependencies.each do |dep|
if gems.find_name(dep.name, dep.version_requirements).empty?
puts "Installing dependency: #{dep}"
system %Q|gem install #{dep.name} -v "#{dep.version_requirements}" --development|
end
end
end
namespace :gem do
desc "Repackage gem, uninstall and install again (does not use sudo)."
task :refresh => :repackage do
system "gem uninstall #{configuration.gem_name} -v #{configuration.version}"
system "gem install pkg/#{configuration.gem_name}-#{configuration.version}.gem"
end
desc "Create a gemspec file"
task :spec do
File.open("#{configuration.gem_name}.gemspec", "w") do |file|
file.puts spec.to_ruby
end
end
end
end
|