-
Notifications
You must be signed in to change notification settings - Fork 17
/
Rakefile
executable file
·64 lines (52 loc) · 1.88 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
#!/usr/bin/env rake
require File.expand_path('../config/setup_load_paths', __FILE__)
require "bundler/gem_tasks"
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = %w[--profile --format progress]
t.ruby_opts = "-Ispec -rsimplecov_setup"
end
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby' # MRI only
require 'cane/rake_task'
desc "Run cane to check quality metrics"
Cane::RakeTask.new(:quality) do |cane|
cane.abc_max = 13
cane.style_measure = 100
cane.abc_exclude = %w[
Interpol::StubApp::Builder#initialize
Interpol::EndpointDefinition#initialize
]
cane.style_exclude = %w[
spec/unit/interpol/sinatra/request_params_parser_spec.rb
]
end
desc "Checks the spec coverage and fails if it is less than 100%"
task :check_coverage do
puts "Checking code coverage..."
percent = File.read("coverage/coverage_percent.txt").to_f
if percent < 100
raise "Failed to achieve 100% code coverage: #{percent}"
else
puts "Nice work! Code coverage is still 100%"
end
end
else
task(:quality) { } # no-op
task(:check_coverage) { } # no-op
end
task :default => [:spec, :quality, :check_coverage]
desc "Watch Documentation App Compass Files"
task :compass_watch do
Dir.chdir("lib/interpol/documentation_app") do
sh "bundle exec compass watch"
end
end
desc "Import the twitter bootstrap assets from the compass_twitter_bootstrap gem"
task :import_bootstrap_assets do
# when the gem installed as a :git gem, it has "-" as a separator;
# when it's installed as a released rubygem, it has "_" as a separator.
gem_lib_path = $LOAD_PATH.grep(/compass[-_]twitter[-_]bootstrap/).first
assets = Dir[File.join(gem_lib_path, '..', 'vendor', 'assets', '**')]
destination_path = File.expand_path("../lib/interpol/documentation_app/public", __FILE__)
FileUtils.cp_r(assets, destination_path)
end