summaryrefslogtreecommitdiff
path: root/Rakefile
blob: aea6a5da1dba8d8c8556a67a85bc0f5e8e45e47f (plain)
1
2
3
4
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
71
72
73
74
75
76
77
78
79
80
81
$:.unshift File.join(File.dirname(__FILE__), 'lib')
require 'rubygems' unless ENV['NO_RUBYGEMS']
require 'rubygems/specification'
require 'bundler'
require 'date'

spec = Gem::Specification.new do |s|
  s.name    = "bundler"
  s.version = Bundler::VERSION
  s.authors = ["Yehuda Katz", "Carl Lerche"]
  s.email   = ["wycats@gmail.com", "clerche@engineyard.com"]
  s.homepage = "http://github.com/wycats/bundler"
  s.description = s.summary = "An easy way to vendor gem dependencies"

  s.platform = Gem::Platform::RUBY
  s.has_rdoc = true
  s.extra_rdoc_files = ["README.markdown", "LICENSE"]

  s.required_rubygems_version = ">= 1.3.5"

  s.require_path = 'lib'
  s.files = %w(LICENSE README.markdown Rakefile) + Dir.glob("lib/**/*")
end

task :default => :spec

begin
  require 'spec/rake/spectask'
rescue LoadError
  task(:spec) { $stderr.puts '`gem install rspec` to run specs' }
else
  desc "Run specs"
  Spec::Rake::SpecTask.new do |t|
    t.spec_files = FileList['spec/**/*_spec.rb'] - FileList['spec/fixtures/**/*_spec.rb']
    t.spec_opts = %w(-fs --color)
    t.warning = true
  end
end

namespace :spec do
  file "tmp/rg_deps" do
    repo = File.dirname(__FILE__) + '/tmp/rg_deps'
    FileUtils.mkdir_p(repo)
    p repo
    ENV['GEM_HOME'], ENV['GEM_PATH'] = repo, repo
    system "gem install builder --no-rdoc --no-ri"
  end

  desc "Do all setup needed to run the specs"
  task :setup => "tmp/rg_deps"
end

begin
  require 'rake/gempackagetask'
rescue LoadError
  task(:gem) { $stderr.puts '`gem install rake` to package gems' }
else
  Rake::GemPackageTask.new(spec) do |pkg|
    pkg.gem_spec = spec
  end
end

desc "mount a ramdisk at ./tmp for faster specs"
task :ramdisk do
  sh 'diskutil erasevolume HFS+ "tmpbundler" `hdiutil attach -nomount ram://116543`'
  File.symlink "/Volumes/tmpbundler", File.expand_path('../tmp', __FILE__)
end

desc "install the gem locally"
task :install => [:package] do
  sh %{gem install pkg/#{spec.name}-#{spec.version}}
end

desc "create a gemspec file"
task :make_spec do
  File.open("#{spec.name}.gemspec", "w") do |file|
    file.puts spec.to_ruby
  end
end

task :gem => :make_spec