-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRakefile
More file actions
71 lines (58 loc) · 1.67 KB
/
Rakefile
File metadata and controls
71 lines (58 loc) · 1.67 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
# frozen_string_literal: true
require "fileutils"
require "rake/testtask"
require "rubocop/rake_task"
REPO_ROOT = File.dirname(__FILE__)
GEMS_DIR = "#{REPO_ROOT}/gems"
GEMS_DIRS = (Dir.glob("#{GEMS_DIR}/*") + Dir.glob(REPO_ROOT))
Dir.glob("#{REPO_ROOT}/tasks/**/*.rake").each do |task_file|
load(task_file)
end
def gem_name(dir)
File.basename(dir)
end
def with_all_gems(name = true, &block)
GEMS_DIRS.each { |gem_dir| yield name ? gem_name(gem_dir) : gem_dir }
end
GEMS_DIRS.each do |gem_dir|
Rake::TestTask.new("test_gem:#{gem_name(gem_dir)}") do |t|
t.libs << "#{gem_dir}/test"
t.libs << "#{gem_dir}/lib"
t.test_files = FileList["#{gem_dir}/test/**/*_test.rb"]
t.warning = false
t.verbose = true
end
RuboCop::RakeTask.new("rubocop:#{gem_name(gem_dir)}") do |t|
t.patterns = ["#{gem_dir}/lib/**/*.rb", "#{gem_dir}/test/**/*.rb"]
end
end
desc "Run All Tests in each gem"
task "test:all" do
with_all_gems do |name|
Rake::Task["test_gem:#{name}"].invoke
end
end
desc "Run Specs for single gem"
task "test:gem", [:gem_name] do |_, args|
Rake::Task["test_gem:#{gem_name(args[:gem_name])}"].invoke
end
desc "Rubocop all gems"
task "rubocop:all" do
with_all_gems do |name|
Rake::Task["rubocop:#{name}"].invoke
end
end
desc "Rubocop single gem"
task "rubocop:gem", [:gem_name] do |_, args|
Rake::Task["rubocop:#{gem_name(args[:gem_name])}"].invoke
end
desc "Transpile all gems"
task "nextify:all" do
with_all_gems(false) do |path|
sh "bundle exec ruby-next nextify #{path}/lib -V"
end
end
desc "Transpile single gem"
task "nextify:gem", [:gem_name] do |_, args|
sh "cd #{args[:gem_name]} && bundle exec ruby-next nextify -V"
end