Sha256: 2f1509f89cf4fa4db95ff4b54bbf9f471a1d872e9c9a712aec8c0bad70021ecc

Contents?: true

Size: 868 Bytes

Versions: 8

Compression:

Stored size: 868 Bytes

Contents

class ProconBypassMan::Procon::MacroRegistry
  class Macro
    attr_accessor :name, :steps

    def initialize(name: , steps: )
      self.name = name
      self.steps = steps
    end

    def next_step
      steps.shift
    end

    def finished?
      steps.empty?
    end

    def ongoing?
      !finished?
    end
  end

  PRESETS = {
    null: [],
  }

  def self.install_plugin(klass)
    if plugins[klass.name]
      raise "すでに登録済みです"
    end
    plugins[klass.name] = klass.steps
  end

  def self.load(name)
    steps = PRESETS[name] || plugins[name] || raise("unknown macro")
    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

8 entries across 8 versions & 1 rubygems

Version Path
procon_bypass_man-0.1.16.1 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.16 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.15 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.14 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.13 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.12 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.11 lib/procon_bypass_man/procon/macro_registry.rb
procon_bypass_man-0.1.10 lib/procon_bypass_man/procon/macro_registry.rb