class Leftovers::RakeTask

Public Class Methods

generate_task(name = :leftovers, *default_argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 11
def self.generate_task(name = :leftovers, *default_argv) # rubocop:disable
  new(name, default_argv)

  name
end
new(name, default_argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 17
def initialize(name, default_argv)
  @name = name
  @default_argv = default_argv

  describe_task
  define_task
end

Private Instance Methods

argv_or_default(task_argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 57
def argv_or_default(task_argv)
  task_argv = task_argv.to_a.compact
  task_argv.empty? ? @default_argv : task_argv
end
define_task() click to toggle source
# File lib/leftovers/rake_task.rb, line 39
def define_task
  task(@name, :'*args') do |_, task_argv|
    argv = argv_or_default(task_argv)
    write_cli_cmd(argv)
    run(argv)
  end
end
describe_task() click to toggle source
# File lib/leftovers/rake_task.rb, line 33
def describe_task
  return desc('Run leftovers') if @default_argv.empty?

  desc("Run leftovers (default args: #{escaped_argv})")
end
escaped_argv(argv = @default_argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 27
def escaped_argv(argv = @default_argv)
  return if argv.empty?

  Shellwords.shelljoin(argv)
end
run(argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 51
def run(argv)
  exitstatus = Leftovers::CLI.new(argv: argv).run

  exit exitstatus unless exitstatus == 0
end
write_cli_cmd(argv) click to toggle source
# File lib/leftovers/rake_task.rb, line 47
def write_cli_cmd(argv)
  $stdout.puts("\e[2mleftovers #{escaped_argv(argv)}\e[0m")
end