Sha256: d54dfb8a574eae725582ae3037d739d6fc80f8b8f49540dc78c866dbc42be237

Contents?: true

Size: 832 Bytes

Versions: 6

Compression:

Stored size: 832 Bytes

Contents

# frozen_string_literal: true

class Pry
  # CommandState is a data structure to hold per-command state.
  #
  # Pry commands can store arbitrary state here. This state persists between
  # subsequent command invocations. All state saved here is unique to the
  # command.
  #
  # @since v0.13.0
  # @api private
  class CommandState
    def self.default
      @default ||= new
    end

    def initialize
      @command_state = {}
    end

    def state_for(command_class)
      @command_state[command_class] ||= command_struct(command_class)
    end

    def reset(command_class)
      @command_state[command_class] = command_struct(command_class)
    end

    private

    def command_struct(command_class)
      Struct.new(:command, *command_class.command_options[:state])
        .new(command: command_class)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pry-0.15.2 lib/pry/command_state.rb
pry-0.15.2-java lib/pry/command_state.rb
pry-0.15.1 lib/pry/command_state.rb
pry-0.15.1-java lib/pry/command_state.rb
pry-0.15.0 lib/pry/command_state.rb
pry-0.15.0-java lib/pry/command_state.rb