Class: Pry::Command::Ls::Constants

Inherits:
Formatter show all
Includes:
Interrogatable
Defined in:
lib/pry/commands/ls/constants.rb

Constant Summary collapse

DEPRECATED_CONSTANTS =
[
  :Data, :Fixnum, :Bignum, :TimeoutError, :NIL, :FALSE, :TRUE
].tap do |constants|
  constants << :JavaPackageModuleTemplate if Helpers::Platform.jruby?
end

Instance Attribute Summary

Attributes inherited from Formatter

#grep, #pry_instance

Instance Method Summary collapse

Methods included from Interrogatable

#interrogatee_mod, #interrogating_a_module?

Methods inherited from Formatter

#color, #format_value, #output_section, #write_out

Constructor Details

#initialize(interrogatee, no_user_opts, opts, pry_instance) ⇒ Constants

Returns a new instance of Constants.


14
15
16
17
18
19
20
21
# File 'lib/pry/commands/ls/constants.rb', line 14

def initialize(interrogatee, no_user_opts, opts, pry_instance)
  super(pry_instance)
  @interrogatee = interrogatee
  @no_user_opts = no_user_opts
  @default_switch = opts[:constants]
  @verbose_switch = opts[:verbose]
  @dconstants = opts.dconstants?
end

Instance Method Details

#correct_opts?Boolean

Returns:

  • (Boolean)

23
24
25
# File 'lib/pry/commands/ls/constants.rb', line 23

def correct_opts?
  super || (@no_user_opts && interrogating_a_module?)
end

#format(mod, constants) ⇒ Object (private)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/pry/commands/ls/constants.rb', line 39

def format(mod, constants)
  constants.sort_by(&:downcase).map do |name|
    if Object.respond_to?(:deprecate_constant) &&
       DEPRECATED_CONSTANTS.include?(name) &&
       !show_deprecated_constants?
      next
    end

    if (const = (begin
                   !mod.autoload?(name) && (mod.const_get(name) || true)
                 rescue StandardError
                   nil
                 end))
      if begin
           const < Exception
         rescue StandardError
           false
         end
        color(:exception_constant, name)
      elsif begin
              mod.const_get(name).is_a?(Module)
            rescue StandardError
              false
            end
        color(:class_constant, name)
      else
        color(:constant, name)
      end
    else
      color(:unloaded_constant, name)
    end
  end
end

#output_selfObject


27
28
29
30
31
# File 'lib/pry/commands/ls/constants.rb', line 27

def output_self
  mod = interrogatee_mod
  constants = WrappedModule.new(mod).constants(@verbose_switch)
  output_section('constants', grep.regexp[format(mod, constants)])
end

#show_deprecated_constants?Boolean (private)

Returns:

  • (Boolean)

35
36
37
# File 'lib/pry/commands/ls/constants.rb', line 35

def show_deprecated_constants?
  @dconstants == true
end