forked from rspec/rspec-rails
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Thorfile
40 lines (36 loc) · 1.01 KB
/
Thorfile
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
class Gemfile < Thor
desc "use VERSION", "installs the bundle using gemfiles/rails-VERSION"
def use(version)
"gemfiles/rails-#{version}".tap do |gemfile|
ENV["BUNDLE_GEMFILE"] = File.expand_path(gemfile)
say "Using #{gemfile}"
end
"bundle install --binstubs".tap do |m|
say m
system m
end
unless version =~ /^\d\.\d\.\d/
"bundle update rails".tap do |m|
say m
system m
end
end
say `ln -s gemfiles/bin` unless File.exist?('bin')
`echo rails-#{version} > ./.gemfile`
end
desc "which", "print out the configured gemfile"
def which
say `cat ./.gemfile`
end
desc "list", "list the available options for 'thor gemfile:use'"
def list
all = `ls gemfiles`.chomp.split.grep(/^rails/).reject {|i| i =~ /lock$/}
versions = all.grep(/^rails-\d\.\d/)
branches = all - versions
puts "releases:"
versions.sort.reverse.each {|i| puts i}
puts
puts "branches:"
branches.sort.reverse.each {|i| puts i}
end
end