rake-protect

Build Status Coverage Report Gem Version

When some gems are unavailable in an environment, for example on a production server, requiring them in a Rakefile will cause LoadError to be thrown. Wrap the require and task declaration in Rake.protect block to prevent that.

For example, let's create a sample Gemfile with one gem limited only to test group:

source 'https://rubygems.org'

gem 'rake'
gem 'rake-protect'

# Test environment gems only.
group :test do
  gem 'rubocop'
end

Then, install the gems, without the test group:

$ bundle install --without=test

Now, requiring the rubocop gem inside Rakefile will naturally raise a LoadError:

require 'rubocop/rake_task' # This raises a LoadError.

RuboCop::RakeTask.new

Wrap the require and task declaration in Rake.protect to suppress the error and allow yourself to use other, available tasks:

require 'rake-protect'

Rake.protect do
  require 'rubocop/rake_task'

  RuboCop::RakeTask.new
end

Development

After checking out the repo, run bin/install-dependencies to install dependencies.

The project uses Rake to automate development tasks. Run bin/run without any arguments to see the full list.

Using development console

bin/run guard command starts a live console that automates various common tasks (running tests, linting source code, etc.) in response to file system modifications. This feature is provided by Guard gem.

License

The gem is available as open source under the terms of the MIT License. Copyright (c) 2017 Marek Tuchowski. See LICENSE for details.