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