irb 1.10.1 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.document +1 -1
- data/README.md +38 -11
- data/irb.gemspec +1 -1
- data/lib/irb/cmd/debug.rb +1 -1
- data/lib/irb/cmd/exit.rb +22 -0
- data/lib/irb/cmd/measure.rb +10 -13
- data/lib/irb/cmd/show_source.rb +5 -8
- data/lib/irb/completion.rb +7 -1
- data/lib/irb/context.rb +4 -16
- data/lib/irb/extend-command.rb +6 -12
- data/lib/irb/help.rb +1 -1
- data/lib/irb/init.rb +10 -10
- data/lib/irb/input-method.rb +8 -7
- data/lib/irb/source_finder.rb +9 -14
- data/lib/irb/version.rb +2 -2
- data/lib/irb/xmp.rb +2 -2
- data/lib/irb.rb +801 -313
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17969636013c03ffd08d5b53570ec0eda8620855092bd863c5b851e668343007
|
4
|
+
data.tar.gz: 7900a886588ebca5839e2b6fac6d538e58febd2706cdbbe979e098f2950d2d79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9d8fe7568718ce10db38ed1a85ad92473c21ca81738cadaa8a8258adcf18cdbfc5755c61621c336ac4bc53c57a08ad26311a4fc671fb98ad0cd5130c2e7527e
|
7
|
+
data.tar.gz: 729f6a0f6ba9fe6cfac3e2ed9e752531006f60c386b3e51fd84c877eeb1b3cdcb0fee1a7bf44c3c0bfa7f0f56def8ad8c7d99413b9b96b304d17e0c15d90aa87
|
data/.document
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,10 @@ The `irb` command from your shell will start the interpreter.
|
|
15
15
|
- [Debugging with IRB](#debugging-with-irb)
|
16
16
|
- [More about `debug.gem`](#more-about-debuggem)
|
17
17
|
- [Advantages Over `debug.gem`'s Console](#advantages-over-debuggems-console)
|
18
|
+
- [Type Based Completion](#type-based-completion)
|
19
|
+
- [How to Enable IRB::TypeCompletor](#how-to-enable-irbtypecompletor)
|
20
|
+
- [Advantage over Default IRB::RegexpCompletor](#advantage-over-default-irbregexpcompletor)
|
21
|
+
- [Difference between Steep's Completion](#difference-between-steeps-completion)
|
18
22
|
- [Configuration](#configuration)
|
19
23
|
- [Environment Variables](#environment-variables)
|
20
24
|
- [Documentation](#documentation)
|
@@ -105,15 +109,9 @@ Hello World
|
|
105
109
|
|
106
110
|
The following commands are available on IRB. You can get the same output from the `show_cmds` command.
|
107
111
|
|
108
|
-
```
|
109
|
-
Workspace
|
110
|
-
cwws Show the current workspace.
|
111
|
-
chws Change the current workspace to an object.
|
112
|
-
workspaces Show workspaces.
|
113
|
-
pushws Push an object to the workspace stack.
|
114
|
-
popws Pop a workspace from the workspace stack.
|
115
|
-
|
112
|
+
```txt
|
116
113
|
IRB
|
114
|
+
exit Exit the current irb session.
|
117
115
|
irb_load Load a Ruby file.
|
118
116
|
irb_require Require a Ruby file.
|
119
117
|
source Loads a given file in the current session.
|
@@ -121,6 +119,13 @@ IRB
|
|
121
119
|
show_cmds List all available commands and their description.
|
122
120
|
history Shows the input history. `-g [query]` or `-G [query]` allows you to filter the output.
|
123
121
|
|
122
|
+
Workspace
|
123
|
+
cwws Show the current workspace.
|
124
|
+
chws Change the current workspace to an object.
|
125
|
+
workspaces Show workspaces.
|
126
|
+
pushws Push an object to the workspace stack.
|
127
|
+
popws Pop a workspace from the workspace stack.
|
128
|
+
|
124
129
|
Multi-irb (DEPRECATED)
|
125
130
|
irb Start a child IRB.
|
126
131
|
jobs List of current sessions.
|
@@ -149,6 +154,10 @@ Context
|
|
149
154
|
ls Show methods, constants, and variables. `-g [query]` or `-G [query]` allows you to filter out the output.
|
150
155
|
show_source Show the source code of a given method or constant.
|
151
156
|
whereami Show the source code around binding.irb again.
|
157
|
+
|
158
|
+
Aliases
|
159
|
+
$ Alias for `show_source`
|
160
|
+
@ Alias for `whereami`
|
152
161
|
```
|
153
162
|
|
154
163
|
## Debugging with IRB
|
@@ -242,15 +251,33 @@ IRB's default completion `IRB::RegexpCompletor` uses Regexp. IRB has another exp
|
|
242
251
|
|
243
252
|
### How to Enable IRB::TypeCompletor
|
244
253
|
|
245
|
-
|
254
|
+
Install [ruby/repl_type_completor](https://github.com/ruby/repl_type_completor/) with:
|
255
|
+
```
|
256
|
+
$ gem install repl_type_completor
|
257
|
+
```
|
258
|
+
Or add these lines to your project's Gemfile.
|
259
|
+
```ruby
|
260
|
+
gem 'irb'
|
261
|
+
gem 'repl_type_completor', group: [:development, :test]
|
262
|
+
```
|
263
|
+
|
264
|
+
Now you can use type based completion by:
|
265
|
+
|
266
|
+
Running IRB with the `--type-completor` option
|
246
267
|
```
|
247
268
|
$ irb --type-completor
|
248
269
|
```
|
249
|
-
|
270
|
+
|
271
|
+
Or writing this line to IRB's rc-file (e.g. `~/.irbrc`)
|
250
272
|
```ruby
|
251
273
|
IRB.conf[:COMPLETOR] = :type # default is :regexp
|
252
274
|
```
|
253
|
-
|
275
|
+
|
276
|
+
Or setting the environment variable `IRB_COMPLETOR`
|
277
|
+
```ruby
|
278
|
+
ENV['IRB_COMPLETOR'] = 'type'
|
279
|
+
IRB.start
|
280
|
+
```
|
254
281
|
|
255
282
|
To check if it's enabled, type `irb_info` into IRB and see the `Completion` section.
|
256
283
|
```
|
data/irb.gemspec
CHANGED
data/lib/irb/cmd/debug.rb
CHANGED
@@ -31,7 +31,7 @@ module IRB
|
|
31
31
|
# 4. Exit the current Irb#run call via `throw :IRB_EXIT`.
|
32
32
|
# 5. `Irb#debug_break` will be called and trigger the breakpoint, which will run the intended command.
|
33
33
|
unless binding_irb?
|
34
|
-
puts "
|
34
|
+
puts "Debugging commands are only available when IRB is started with binding.irb"
|
35
35
|
return
|
36
36
|
end
|
37
37
|
|
data/lib/irb/cmd/exit.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "nop"
|
4
|
+
|
5
|
+
module IRB
|
6
|
+
# :stopdoc:
|
7
|
+
|
8
|
+
module ExtendCommand
|
9
|
+
class Exit < Nop
|
10
|
+
category "IRB"
|
11
|
+
description "Exit the current irb session."
|
12
|
+
|
13
|
+
def execute(*)
|
14
|
+
IRB.irb_exit
|
15
|
+
rescue UncaughtThrowError
|
16
|
+
Kernel.exit
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# :startdoc:
|
22
|
+
end
|
data/lib/irb/cmd/measure.rb
CHANGED
@@ -12,32 +12,29 @@ module IRB
|
|
12
12
|
super(*args)
|
13
13
|
end
|
14
14
|
|
15
|
-
def execute(type = nil, arg = nil
|
15
|
+
def execute(type = nil, arg = nil)
|
16
16
|
# Please check IRB.init_config in lib/irb/init.rb that sets
|
17
17
|
# IRB.conf[:MEASURE_PROC] to register default "measure" methods,
|
18
18
|
# "measure :time" (abbreviated as "measure") and "measure :stackprof".
|
19
|
+
|
20
|
+
if block_given?
|
21
|
+
warn 'Configure IRB.conf[:MEASURE_PROC] to add custom measure methods.'
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
19
25
|
case type
|
20
26
|
when :off
|
21
|
-
IRB.conf[:MEASURE] = nil
|
22
27
|
IRB.unset_measure_callback(arg)
|
23
28
|
when :list
|
24
29
|
IRB.conf[:MEASURE_CALLBACKS].each do |type_name, _, arg_val|
|
25
30
|
puts "- #{type_name}" + (arg_val ? "(#{arg_val.inspect})" : '')
|
26
31
|
end
|
27
32
|
when :on
|
28
|
-
|
29
|
-
added = IRB.set_measure_callback(type, arg)
|
33
|
+
added = IRB.set_measure_callback(arg)
|
30
34
|
puts "#{added[0]} is added." if added
|
31
35
|
else
|
32
|
-
|
33
|
-
|
34
|
-
added = IRB.set_measure_callback(&block)
|
35
|
-
puts "#{added[0]} is added." if added
|
36
|
-
else
|
37
|
-
IRB.conf[:MEASURE] = true
|
38
|
-
added = IRB.set_measure_callback(type, arg)
|
39
|
-
puts "#{added[0]} is added." if added
|
40
|
-
end
|
36
|
+
added = IRB.set_measure_callback(type, arg)
|
37
|
+
puts "#{added[0]} is added." if added
|
41
38
|
end
|
42
39
|
nil
|
43
40
|
end
|
data/lib/irb/cmd/show_source.rb
CHANGED
@@ -27,17 +27,14 @@ module IRB
|
|
27
27
|
puts "Error: Expected a string but got #{str.inspect}"
|
28
28
|
return
|
29
29
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
else
|
35
|
-
source = SourceFinder.new(@irb_context).find_source(str)
|
36
|
-
end
|
30
|
+
|
31
|
+
str, esses = str.split(" -")
|
32
|
+
super_level = esses ? esses.count("s") : 0
|
33
|
+
source = SourceFinder.new(@irb_context).find_source(str, super_level)
|
37
34
|
|
38
35
|
if source
|
39
36
|
show_source(source)
|
40
|
-
elsif
|
37
|
+
elsif super_level > 0
|
41
38
|
puts "Error: Couldn't locate a super definition for #{str}"
|
42
39
|
else
|
43
40
|
puts "Error: Couldn't locate a definition for #{str}"
|
data/lib/irb/completion.rb
CHANGED
@@ -406,7 +406,13 @@ module IRB
|
|
406
406
|
else
|
407
407
|
select_message(receiver, message, candidates.sort)
|
408
408
|
end
|
409
|
-
|
409
|
+
when /^\s*$/
|
410
|
+
# empty input
|
411
|
+
if doc_namespace
|
412
|
+
nil
|
413
|
+
else
|
414
|
+
[]
|
415
|
+
end
|
410
416
|
else
|
411
417
|
if doc_namespace
|
412
418
|
vars = (bind.local_variables | bind.eval_instance_variables).collect{|m| m.to_s}
|
data/lib/irb/context.rb
CHANGED
@@ -264,15 +264,15 @@ module IRB
|
|
264
264
|
attr_reader :prompt_mode
|
265
265
|
# Standard IRB prompt.
|
266
266
|
#
|
267
|
-
# See IRB@
|
267
|
+
# See {Custom Prompts}[rdoc-ref:IRB@Custom+Prompts] for more information.
|
268
268
|
attr_accessor :prompt_i
|
269
269
|
# IRB prompt for continuated strings.
|
270
270
|
#
|
271
|
-
# See IRB@
|
271
|
+
# See {Custom Prompts}[rdoc-ref:IRB@Custom+Prompts] for more information.
|
272
272
|
attr_accessor :prompt_s
|
273
273
|
# IRB prompt for continuated statement. (e.g. immediately after an +if+)
|
274
274
|
#
|
275
|
-
# See IRB@
|
275
|
+
# See {Custom Prompts}[rdoc-ref:IRB@Custom+Prompts] for more information.
|
276
276
|
attr_accessor :prompt_c
|
277
277
|
|
278
278
|
# TODO: Remove this when developing v2.0
|
@@ -394,8 +394,6 @@ module IRB
|
|
394
394
|
# The default value is 16.
|
395
395
|
#
|
396
396
|
# Can also be set using the +--back-trace-limit+ command line option.
|
397
|
-
#
|
398
|
-
# See IRB@Command+line+options for more command line options.
|
399
397
|
attr_accessor :back_trace_limit
|
400
398
|
|
401
399
|
# User-defined IRB command aliases
|
@@ -463,7 +461,7 @@ module IRB
|
|
463
461
|
|
464
462
|
# Sets the +mode+ of the prompt in this context.
|
465
463
|
#
|
466
|
-
# See IRB@
|
464
|
+
# See {Custom Prompts}[rdoc-ref:IRB@Custom+Prompts] for more information.
|
467
465
|
def prompt_mode=(mode)
|
468
466
|
@prompt_mode = mode
|
469
467
|
pconf = IRB.conf[:PROMPT][mode]
|
@@ -501,8 +499,6 @@ module IRB
|
|
501
499
|
#
|
502
500
|
# Can also be set using the +--inspect+ and +--noinspect+ command line
|
503
501
|
# options.
|
504
|
-
#
|
505
|
-
# See IRB@Command+line+options for more command line options.
|
506
502
|
def inspect_mode=(opt)
|
507
503
|
|
508
504
|
if i = Inspector::INSPECTORS[opt]
|
@@ -577,14 +573,6 @@ module IRB
|
|
577
573
|
@inspect_method.inspect_value(@last_value)
|
578
574
|
end
|
579
575
|
|
580
|
-
alias __exit__ exit
|
581
|
-
# Exits the current session, see IRB.irb_exit
|
582
|
-
def exit(ret = 0)
|
583
|
-
IRB.irb_exit(@irb, ret)
|
584
|
-
rescue UncaughtThrowError
|
585
|
-
super
|
586
|
-
end
|
587
|
-
|
588
576
|
NOPRINTING_IVARS = ["@last_value"] # :nodoc:
|
589
577
|
NO_INSPECTING_IVARS = ["@irb", "@io"] # :nodoc:
|
590
578
|
IDNAME_IVARS = ["@prompt_mode"] # :nodoc:
|
data/lib/irb/extend-command.rb
CHANGED
@@ -16,15 +16,6 @@ module IRB # :nodoc:
|
|
16
16
|
# See #install_alias_method.
|
17
17
|
OVERRIDE_ALL = 0x02
|
18
18
|
|
19
|
-
# Quits the current irb context
|
20
|
-
#
|
21
|
-
# +ret+ is the optional signal or message to send to Context#exit
|
22
|
-
#
|
23
|
-
# Same as <code>IRB.CurrentContext.exit</code>.
|
24
|
-
def irb_exit(ret = 0)
|
25
|
-
irb_context.exit(ret)
|
26
|
-
end
|
27
|
-
|
28
19
|
# Displays current configuration.
|
29
20
|
#
|
30
21
|
# Modifying the configuration is achieved by sending a message to IRB.conf.
|
@@ -35,13 +26,16 @@ module IRB # :nodoc:
|
|
35
26
|
@ALIASES = [
|
36
27
|
[:context, :irb_context, NO_OVERRIDE],
|
37
28
|
[:conf, :irb_context, NO_OVERRIDE],
|
38
|
-
[:irb_quit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
|
39
|
-
[:exit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
|
40
|
-
[:quit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
|
41
29
|
]
|
42
30
|
|
43
31
|
|
44
32
|
@EXTEND_COMMANDS = [
|
33
|
+
[
|
34
|
+
:irb_exit, :Exit, "cmd/exit",
|
35
|
+
[:exit, OVERRIDE_PRIVATE_ONLY],
|
36
|
+
[:quit, OVERRIDE_PRIVATE_ONLY],
|
37
|
+
[:irb_quit, OVERRIDE_PRIVATE_ONLY],
|
38
|
+
],
|
45
39
|
[
|
46
40
|
:irb_current_working_workspace, :CurrentWorkingWorkspace, "cmd/chws",
|
47
41
|
[:cwws, NO_OVERRIDE],
|
data/lib/irb/help.rb
CHANGED
data/lib/irb/init.rb
CHANGED
@@ -215,6 +215,7 @@ module IRB # :nodoc:
|
|
215
215
|
added = [:TIME, IRB.conf[:MEASURE_PROC][:TIME], arg]
|
216
216
|
end
|
217
217
|
if added
|
218
|
+
IRB.conf[:MEASURE] = true
|
218
219
|
found = IRB.conf[:MEASURE_CALLBACKS].find{ |m| m[0] == added[0] && m[2] == added[2] }
|
219
220
|
if found
|
220
221
|
# already added
|
@@ -235,6 +236,7 @@ module IRB # :nodoc:
|
|
235
236
|
type_sym = type.upcase.to_sym
|
236
237
|
IRB.conf[:MEASURE_CALLBACKS].reject!{ |t, | t == type_sym }
|
237
238
|
end
|
239
|
+
IRB.conf[:MEASURE] = nil if IRB.conf[:MEASURE_CALLBACKS].empty?
|
238
240
|
end
|
239
241
|
|
240
242
|
def IRB.init_error
|
@@ -387,18 +389,16 @@ module IRB # :nodoc:
|
|
387
389
|
$LOAD_PATH.unshift(*load_path)
|
388
390
|
end
|
389
391
|
|
390
|
-
#
|
392
|
+
# Run the config file
|
391
393
|
def IRB.run_config
|
392
394
|
if @CONF[:RC]
|
393
395
|
begin
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
print "\t", err, "\n"
|
401
|
-
end
|
396
|
+
file = rc_file
|
397
|
+
# Because rc_file always returns `HOME/.irbrc` even if no rc file is present, we can't warn users about missing rc files.
|
398
|
+
# Otherwise, it'd be very noisy.
|
399
|
+
load file if File.exist?(file)
|
400
|
+
rescue StandardError, ScriptError => e
|
401
|
+
warn "Error loading RC file '#{file}':\n#{e.full_message(highlight: false)}"
|
402
402
|
end
|
403
403
|
end
|
404
404
|
end
|
@@ -416,7 +416,7 @@ module IRB # :nodoc:
|
|
416
416
|
end
|
417
417
|
case rc_file = @CONF[:RC_NAME_GENERATOR].call(ext)
|
418
418
|
when String
|
419
|
-
|
419
|
+
rc_file
|
420
420
|
else
|
421
421
|
fail IllegalRCNameGenerator
|
422
422
|
end
|
data/lib/irb/input-method.rb
CHANGED
@@ -291,11 +291,13 @@ module IRB
|
|
291
291
|
@auto_indent_proc = block
|
292
292
|
end
|
293
293
|
|
294
|
+
def retrieve_doc_namespace(matched)
|
295
|
+
preposing, _target, postposing, bind = @completion_params
|
296
|
+
@completor.doc_namespace(preposing, matched, postposing, bind: bind)
|
297
|
+
end
|
298
|
+
|
294
299
|
def show_doc_dialog_proc
|
295
|
-
|
296
|
-
preposing, _target, postposing, bind = @completion_params
|
297
|
-
@completor.doc_namespace(preposing, matched, postposing, bind: bind)
|
298
|
-
}
|
300
|
+
input_method = self # self is changed in the lambda below.
|
299
301
|
->() {
|
300
302
|
dialog.trap_key = nil
|
301
303
|
alt_d = [
|
@@ -311,7 +313,7 @@ module IRB
|
|
311
313
|
cursor_pos_to_render, result, pointer, autocomplete_dialog = context.pop(4)
|
312
314
|
return nil if result.nil? or pointer.nil? or pointer < 0
|
313
315
|
|
314
|
-
name =
|
316
|
+
name = input_method.retrieve_doc_namespace(result[pointer])
|
315
317
|
# Use first one because document dialog does not support multiple namespaces.
|
316
318
|
name = name.first if name.is_a?(Array)
|
317
319
|
|
@@ -419,8 +421,7 @@ module IRB
|
|
419
421
|
return
|
420
422
|
end
|
421
423
|
|
422
|
-
|
423
|
-
namespace = @completor.doc_namespace(preposing, matched, postposing, bind: bind)
|
424
|
+
namespace = retrieve_doc_namespace(matched)
|
424
425
|
return unless namespace
|
425
426
|
|
426
427
|
driver ||= RDoc::RI::Driver.new
|
data/lib/irb/source_finder.rb
CHANGED
@@ -16,10 +16,10 @@ module IRB
|
|
16
16
|
@irb_context = irb_context
|
17
17
|
end
|
18
18
|
|
19
|
-
def find_source(signature,
|
19
|
+
def find_source(signature, super_level = 0)
|
20
20
|
context_binding = @irb_context.workspace.binding
|
21
21
|
case signature
|
22
|
-
when /\A[A-Z]\w*(::[A-Z]\w*)*\z/ # Const::Name
|
22
|
+
when /\A(::)?[A-Z]\w*(::[A-Z]\w*)*\z/ # Const::Name
|
23
23
|
eval(signature, context_binding) # trigger autoload
|
24
24
|
base = context_binding.receiver.yield_self { |r| r.is_a?(Module) ? r : Object }
|
25
25
|
file, line = base.const_source_location(signature)
|
@@ -27,14 +27,15 @@ module IRB
|
|
27
27
|
owner = eval(Regexp.last_match[:owner], context_binding)
|
28
28
|
method = Regexp.last_match[:method]
|
29
29
|
return unless owner.respond_to?(:instance_method)
|
30
|
-
file, line = method_target(owner,
|
30
|
+
file, line = method_target(owner, super_level, method, "owner")
|
31
31
|
when /\A((?<receiver>.+)(\.|::))?(?<method>[^ :.]+)\z/ # method, receiver.method, receiver::method
|
32
32
|
receiver = eval(Regexp.last_match[:receiver] || 'self', context_binding)
|
33
33
|
method = Regexp.last_match[:method]
|
34
34
|
return unless receiver.respond_to?(method, true)
|
35
|
-
file, line = method_target(receiver,
|
35
|
+
file, line = method_target(receiver, super_level, method, "receiver")
|
36
36
|
end
|
37
|
-
|
37
|
+
# If the line is zero, it means that the target's source is probably in a binary file, which we should ignore.
|
38
|
+
if file && line && !line.zero? && File.exist?(file)
|
38
39
|
Source.new(file: file, first_line: line, last_line: find_end(file, line))
|
39
40
|
end
|
40
41
|
end
|
@@ -60,20 +61,14 @@ module IRB
|
|
60
61
|
first_line
|
61
62
|
end
|
62
63
|
|
63
|
-
def method_target(owner_receiver,
|
64
|
+
def method_target(owner_receiver, super_level, method, type)
|
64
65
|
case type
|
65
66
|
when "owner"
|
66
67
|
target_method = owner_receiver.instance_method(method)
|
67
|
-
return target_method.source_location unless s_count
|
68
68
|
when "receiver"
|
69
|
-
|
70
|
-
target_method = owner_receiver.class.instance_method(method)
|
71
|
-
else
|
72
|
-
target_method = method
|
73
|
-
return owner_receiver.method(method).source_location
|
74
|
-
end
|
69
|
+
target_method = owner_receiver.method(method)
|
75
70
|
end
|
76
|
-
|
71
|
+
super_level.times do |s|
|
77
72
|
target_method = target_method.super_method if target_method
|
78
73
|
end
|
79
74
|
target_method.nil? ? nil : target_method.source_location
|
data/lib/irb/version.rb
CHANGED
data/lib/irb/xmp.rb
CHANGED
@@ -44,8 +44,8 @@ class XMP
|
|
44
44
|
# The top-level binding or, optional +bind+ parameter will be used when
|
45
45
|
# creating the workspace. See WorkSpace.new for more information.
|
46
46
|
#
|
47
|
-
# This uses the +:XMP+ prompt mode
|
48
|
-
#
|
47
|
+
# This uses the +:XMP+ prompt mode.
|
48
|
+
# See {Custom Prompts}[rdoc-ref:IRB@Custom+Prompts] for more information.
|
49
49
|
def initialize(bind = nil)
|
50
50
|
IRB.init_config(nil)
|
51
51
|
|