Module: OopsARake::Task

Defined in:
lib/oops_a_rake/task.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



5
6
7
8
# File 'lib/oops_a_rake/task.rb', line 5

def self.included(klass)
  klass.extend(ClassMethods)
  Registry::register(klass)
end

.with_options(name:) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# 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