module OopsARake::Task

Public Class Methods

included(klass) click to toggle source
# File lib/oops_a_rake/task.rb, line 5
def self.included(klass)
  klass.extend(ClassMethods)
  Registry::register(klass)
end
with_options(name:) click to toggle source
# File lib/oops_a_rake/task.rb, line 10
def self.with_options(name:)
  module_name = "#{name.gsub(":", "_").classify}ClassMethods"
  mod = const_set(module_name, Module.new)

  mod.define_singleton_method(:included) do |klass|
    klass.define_singleton_method(:task_name) { name }
    klass.extend(ClassMethods)
    Registry::register(klass)
  end

  mod
end