-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRakefile
More file actions
73 lines (58 loc) · 1.28 KB
/
Rakefile
File metadata and controls
73 lines (58 loc) · 1.28 KB
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
require "bundler/gem_tasks"
require "quick_exam/version"
namespace :gem do
task :uninstall do
uninstall_gem
p 'Uninstalled :)'
end
task :reinstall do
uninstall_gem
remove_pkg_gem
build_gem
install_gem
p 'Reinstalled :)'
end
task :push do
p 'Pushed :)' if push_gem_to_remote
end
task :remove do |t, v|
version = ENV['VERSION'].nil? ? QuickExam::VERSION : ENV['VERSION']
p 'Removed :)' if remove_gem_from_remote(version)
end
private
def gem_installed?
`gem list -i quick_exam`
end
def pkg_gem?
File.exists?("./quick_exam-#{QuickExam::VERSION}.gem")
end
def uninstall_gem
exec 'gem uninstall quick_exam' if gem_installed?
rescue
nil
end
def install_gem
exec "gem install quick_exam-#{QuickExam::VERSION}.gem"
end
def remove_pkg_gem
exec "rm quick_exam-#{QuickExam::VERSION}.gem" if pkg_gem?
rescue
nil
end
def build_gem
exec 'gem build quick_exam.gemspec'
end
def push_gem_to_remote
build_gem unless pkg_gem?
exec "gem push quick_exam-#{QuickExam::VERSION}.gem"
end
def remove_gem_from_remote(version)
exec "gem yank quick_exam -v #{version} -p ruby"
end
def exec(cmd)
puts "\n"
puts '===> ' + cmd
system cmd
end
end
task :default => :spec