forked from rkh/bithug
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
69 lines (55 loc) · 1.76 KB
/
Rakefile
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
require "spec/rake/spectask"
require "rake/clean"
require "rake/rdoctask"
task :default => :spec
task :test => :spec
namespace :vendor do
def dependencies
@dep ||= Hash[
File.read(".gitmodules").scan /\[submodule \"[^\"]+\"\]\n\s*path\s*=\s*vendor\/(.*)\s*url\s*=\s*(.*)/
]
end
def store_dep(file)
File.open(file, "w") { |f| f.puts yield(dependencies) }
puts "output stored in #{file}"
end
desc "store dependencies as yaml"
task :to_yaml do
require "yaml"
store_dep("dependencies.yml") { |d| d.to_yaml }
end
desc "store dependencies for Dependency library"
task :to_dep do
store_dep("dependencies") { |d| d.collect { |e| e.join " " } }
end
desc "stores dependencies for rip"
task :to_rip do
store_dep("deps.rip") { |d| d.values }
end
desc "commits dependency lists to git"
task :publish => [:to_yaml, :to_dep, :to_rip] do
%w(dependencies.yml dependencies deps.rip).each { |f| sh "git add #{f}" }
sh "git commit -m 'updated dependency lists'"
end
namespace :install do
desc "installs dependencies as git submodules"
task :submodules do
unless dependencies.all? { |name, url| system "git submodule add #{url} vendor/#{name}" }
sh "git submodule init && git submodule update"
end
end
desc "installs gems for dependencies"
task :gems do
sh "gem install #{dependencies.join " "}"
end
end
end
Rake::RDocTask.new("doc") do |rdoc|
rdoc.rdoc_dir = 'doc'
rdoc.options += %w[--all --inline-source --line-numbers --main README.rdoc --quiet
--tab-width 2 --title Bithug]
rdoc.rdoc_files.add ['*.{rdoc,rb}', '{config,lib,routes}/**/*.rb']
end
Spec::Rake::SpecTask.new('spec') do |t|
t.spec_files = Dir.glob 'spec/**/*_spec.rb'
end