I want to create a DSL which stores various blocks, and then can call them. I want this to be a reusable module that I can include in multiple classes.
I figured out a way to do this using class variables, but rubocop complains and says that I should use class instance variables instead. I can't figure out a way to do this though. Is it possible?
module MyModule
  def self.included(base)
    base.extend(ClassMethods)
  end
  def run_fixers
    ClassMethods.class_variable_get(:@@fixers).each(&:call)
  end
  module ClassMethods
    def fix(_name, &block)
      @@fixers ||= []
      @@fixers << block
    end
  end
end
class MyClass
  include MyModule
  def initialize
    run_fixers
  end
  fix 'test' do
    puts 'testing'
  end
end
 
    