Rakefile in active_model_serializers-0.10.0.rc3 vs Rakefile in active_model_serializers-0.10.0.rc4
- old
+ new
@@ -9,23 +9,31 @@
require 'rubocop'
require 'rubocop/rake_task'
rescue LoadError
else
Rake::Task[:rubocop].clear if Rake::Task.task_defined?(:rubocop)
- if !defined?(::Rubinius)
- Rake::Task[:rubocop].clear if Rake::Task.task_defined?(:rubocop)
- desc 'Execute rubocop'
- RuboCop::RakeTask.new(:rubocop) do |task|
- task.options = ['--rails', '--display-cop-names', '--display-style-guide']
- task.fail_on_error = true
+ require 'rbconfig'
+ # https://github.com/bundler/bundler/blob/1b3eb2465a/lib/bundler/constants.rb#L2
+ windows_platforms = /(msdos|mswin|djgpp|mingw)/
+ if RbConfig::CONFIG['host_os'] =~ windows_platforms
+ desc 'No-op rubocop on Windows-- unsupported platform'
+ task :rubocop do
+ puts 'Skipping rubocop on Windows'
end
- else
+ elsif defined?(::Rubinius)
desc 'No-op rubocop to avoid rbx segfault'
task :rubocop do
puts 'Skipping rubocop on rbx due to segfault'
puts 'https://github.com/rubinius/rubinius/issues/3499'
end
+ else
+ Rake::Task[:rubocop].clear if Rake::Task.task_defined?(:rubocop)
+ desc 'Execute rubocop'
+ RuboCop::RakeTask.new(:rubocop) do |task|
+ task.options = ['--rails', '--display-cop-names', '--display-style-guide']
+ task.fail_on_error = true
+ end
end
end
require 'rake/testtask'
@@ -34,6 +42,34 @@
t.test_files = FileList['test/**/*_test.rb']
t.ruby_opts = ['-r./test/test_helper.rb']
t.verbose = true
end
-task :default => :test
+desc 'Run isolated tests'
+task isolated: ['test:isolated:railtie']
+namespace :test do
+ namespace :isolated do
+ desc 'Run isolated tests for Railtie'
+ task :railtie do
+ dir = File.dirname(__FILE__)
+ file = "#{dir}/test/active_model_serializers/railtie_test_isolated.rb"
+
+ # https://github.com/rails/rails/blob/3d590add45/railties/lib/rails/generators/app_base.rb#L345-L363
+ _bundle_command = Gem.bin_path('bundler', 'bundle')
+ require 'bundler'
+ Bundler.with_clean_env do
+ command = "-w -I#{dir}/lib -I#{dir}/test #{file}"
+ full_command = %("#{Gem.ruby}" #{command})
+ system(full_command) or fail 'Failures' # rubocop:disable Style/AndOr
+ end
+ end
+ end
+end
+
+if ENV['RAILS_VERSION'].to_s > '4.0' && RUBY_ENGINE == 'ruby'
+ task default: [:isolated, :test, :rubocop]
+else
+ task default: [:test, :rubocop]
+end
+
+desc 'CI test task'
+task :ci => [:default]