class WebConsole::Context

A context lets you get object names related to the current session binding.

Constants

GLOBAL_OBJECTS

Public Class Methods

new(binding) click to toggle source
# File lib/web_console/context.rb, line 6
def initialize(binding)
  @binding = binding
end

Public Instance Methods

extract(input = nil) click to toggle source

Extracts entire objects which can be called by the current session unless the inputs is present.

Otherwise, it extracts methods and constants of the object specified by the input.

# File lib/web_console/context.rb, line 15
def extract(input = nil)
  input.present? ? local(input) : global
end

Private Instance Methods

eval(cmd) click to toggle source
# File lib/web_console/context.rb, line 41
def eval(cmd)
  @binding.eval(cmd) rescue []
end
global() click to toggle source
# File lib/web_console/context.rb, line 30
def global
  GLOBAL_OBJECTS.map { |cmd| eval(cmd) }
end
local(input) click to toggle source
# File lib/web_console/context.rb, line 34
def local(input)
  [
    eval("#{input}.methods").map { |m| "#{input}.#{m}" },
    eval("#{input}.constants").map { |c| "#{input}::#{c}" },
  ]
end