Sha256: a17c614994750e10e603d9e27aa7cf64fd92ebdee14dc9bd14b2c2b4d2f03174

Contents?: true

Size: 728 Bytes

Versions: 6

Compression:

Stored size: 728 Bytes

Contents

class ProconBypassMan::Procon::MacroRegistry
  PRESETS = {
    null: [],
  }

  def self.install_plugin(klass, steps: nil)
    if plugins[klass.to_s.to_sym]
      raise "#{klass} macro is already registered"
    end

    plugins[klass.to_s.to_sym] = ->{
      ProconBypassMan::Procon::MacroBuilder.new(steps || klass.steps).build
    }
  end

  def self.load(name)
    steps = PRESETS[name] || plugins[name].call || raise("unknown macro")
    ProconBypassMan::Procon::Macro.new(name: name, steps: steps.dup)
  end

  def self.reset!
    ProconBypassMan::ButtonsSettingConfiguration.instance.macro_plugins = {}
  end

  def self.plugins
    ProconBypassMan::ButtonsSettingConfiguration.instance.macro_plugins
  end

  reset!
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
procon_bypass_man-0.1.20.2 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.20.1 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.20 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.19.1 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.19 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.18 lib/procon_bypass_man/procon/macro_registry.rb