Sha256: 7d82f4af67e9cc9d401016ca81eca6963effab9322dbffca6d0b88f9645dc980

Contents?: true

Size: 1.91 KB

Versions: 7

Compression:

Stored size: 1.91 KB

Contents

# -*- coding: utf-8 -*-
# Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
require 'rubygems'; require 'require_relative'
require_relative 'locals'

class Trepan::SubSubcommand::InfoVariablesGlobals < Trepan::SubSubcommand
  Trepan::Util.suppress_warnings {
    Trepanning::Subcommand.set_name_prefix(__FILE__, self)
    HELP         = <<-EOH
#{CMD}
#{CMD} [names]

Show global variables.
Normally for each which show both the name and value. If you just
want a list of names add parameter 'names'.
EOH
    SHORT_HELP   = 'Show global variables'
    MIN_ARGS     = 0
    MAX_ARGS     = 1
    NEED_STACK   = true
  }

  def get_names
    global_variables.sort
  end

  def run(args)
    if args.size == 2
      if 0 == 'names'.index(args[-1].downcase)
        names = get_names()
        if names.empty?
            msg "No global variables defined."
        else
          section "Global variable names:"
          width = settings[:maxwidth]
          mess = Columnize::columnize(names, 
                                      @proc.settings[:maxwidth], '  ',
                                      false, true, ' ' * 2).chomp
          msg mess
        end
      else
        errmsg("unrecognized argument: #{args[-1]}")
      end
    elsif args.size == 1
      names = get_names
      if names.empty?
        msg "No global variables defined."
      else
        section "Global variables:"
        names.each do |var_name| 
          s = @proc.debug_eval(var_name.to_s)
          msg("#{var_name} = #{s.inspect}", :code=>true)
        end
      end
    else
      errmsg("Wrong number of arguments #{args.size}")
    end
  end
end

if __FILE__ == $0
  # Demo it.
  require_relative '../../../mock'
  require_relative '../variables'
  cmd = MockDebugger::subsub_setup(Trepan::Subcommand::InfoVariables, 
                                   Trepan::SubSubcommand::InfoVariablesGlobals)
  cmd.run(cmd.prefix)
  cmd.run(cmd.prefix + ['name'])
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
rbx-trepanning-0.2.1-universal-rubinius-2.0 processor/command/info_subcmd/variables_subcmd/globals.rb
rbx-trepanning-0.2.1-universal-rubinius-1.2 processor/command/info_subcmd/variables_subcmd/globals.rb
rbx-trepanning-0.2.0-universal-rubinius-2.0 processor/command/info_subcmd/variables_subcmd/globals.rb
rb8-trepanning-0.1.6 processor/command/info_subcmd/variables_subcmd/globals.rb
rb8-trepanning-0.1.5 processor/command/info_subcmd/variables_subcmd/globals.rb
rbx-trepanning-0.1.0-universal-rubinius-1.2 processor/command/info_subcmd/variables_subcmd/globals.rb
rb8-trepanning-0.1.4 processor/command/info_subcmd/variables_subcmd/globals.rb