class Djin::CLI

Public Class Methods

load_tasks!(tasks) click to toggle source
# File lib/djin/cli.rb, line 7
def self.load_tasks!(tasks)
  tasks.each do |task|
    command = Class.new(Dry::CLI::Command) do
      desc task.description

      define_method(:task) { task }

      def call(**)
        Executor.new.call(task)
      # TODO: Extract error handling output (the same logic is used in djin.rb)
      rescue Djin::TaskError => e
        error_name = e.class.name.split('::').last
        abort("[#{error_name}] #{e.message}")
      end
    end

    register(task.name, command, aliases: task.aliases)
  end
end

Public Instance Methods

call(**) click to toggle source
# File lib/djin/cli.rb, line 14
def call(**)
  Executor.new.call(task)
# TODO: Extract error handling output (the same logic is used in djin.rb)
rescue Djin::TaskError => e
  error_name = e.class.name.split('::').last
  abort("[#{error_name}] #{e.message}")
end