lib/guard/rake_task.rb
#!/usr/bin/env ruby
# frozen_string_literal: true
require "rake"
require "rake/tasklib"
require "guard/cli"
module Guard
# Provides a method to define a Rake task that
# runs the Guard plugins.
#
class RakeTask < ::Rake::TaskLib
# Name of the main, top level task
attr_accessor :name
# CLI options
attr_accessor :options
# Initialize the Rake task
#
# @param [Symbol] name the name of the Rake task
# @param [String] options the CLI options
# @yield [Guard::RakeTask] the task
#
def initialize(name = :guard, options = "")
@name = name
@options = options
yield self if block_given?
desc "Starts Guard with options: '#{options}'"
task name => ["#{name}:start"]
namespace(name) do
desc "Starts Guard with options: '#{options}'"
task(:start) do
::Guard::CLI.start(options.split)
end
end
end
end
end