-
Notifications
You must be signed in to change notification settings - Fork 3.7k
/
Rakefile
46 lines (36 loc) · 1.13 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
begin
require 'bundler/setup'
rescue LoadError
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
end
APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
load 'rails/tasks/engine.rake'
load 'rails/tasks/statistics.rake'
Bundler::GemHelper.install_tasks
require 'rspec/core/rake_task'
desc 'Run all specs in spec directory (excluding plugin specs)'
RSpec::Core::RakeTask.new(spec: 'app:db:test:prepare')
task default: :spec
namespace :manifest do
def gemmable_files
`git ls-files -z`.split("\x0").reject do |file|
file.match(%r{^(bin|spec)/}) ||
file.match(%r{/\.keep$}) ||
%w(.gitignore .rspec Manifest.txt Rakefile publify_textfilter_code.gemspec).include?(file)
end
end
def manifest_files
File.open('Manifest.txt').readlines.map(&:chomp)
end
desc 'Create manifest'
task :create do
File.open('Manifest.txt', 'w') do |manifest|
gemmable_files.each { |file| manifest.puts file }
end
end
desc 'Check manifest'
task :check do
abort 'Manifest check failed' unless gemmable_files == manifest_files
end
end
task default: 'manifest:check'