irb 1.3.7 → 1.3.8.pre.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -3
- data/Rakefile +10 -1
- data/doc/irb/irb.rd.ja +24 -14
- data/irb.gemspec +1 -1
- data/lib/irb/context.rb +5 -0
- data/lib/irb/init.rb +5 -0
- data/lib/irb/input-method.rb +56 -0
- data/lib/irb/lc/help-message +2 -0
- data/lib/irb/lc/ja/help-message +2 -0
- data/lib/irb/version.rb +2 -2
- data/lib/irb.rb +3 -0
- data/man/irb.1 +8 -0
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1373231cc70b1b86ba8a0fc990fb45c4d2790914f27c1055ccf034e555aea55c
|
|
4
|
+
data.tar.gz: 7451c4a722684f4d265d9fc7dc408b765dba980fb169a0f72a9aa469df1ce9ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 766139b77dd400d4df26e471587f82b8e37c98aa75ef8701cb0c89a4b81c081ece91bc8fcb7bc9a1ad6ced8d1d249ed688089878824b90383f3a07cf09aa12cc
|
|
7
|
+
data.tar.gz: eb003c7fcf1f5801f6da77f8535122d4f881d2f85abd0ee7c226f937ab84b3a24a8a8f21864696dfdcbe3d29d491b444a3cb67524192d3202e747f63bf6652f8
|
data/Gemfile
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
4
|
-
|
|
5
3
|
gemspec
|
|
6
4
|
|
|
7
5
|
group :development do
|
|
8
|
-
gem "bundler"
|
|
9
6
|
is_unix = RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
|
|
10
7
|
is_truffleruby = RUBY_DESCRIPTION =~ /truffleruby/
|
|
11
8
|
gem 'vterm', '>= 0.0.5' if is_unix && ENV['WITH_VTERM']
|
|
12
9
|
gem 'yamatanooroti', '>= 0.0.6'
|
|
13
10
|
gem "rake"
|
|
14
11
|
gem "stackprof" if is_unix && !is_truffleruby
|
|
12
|
+
gem "test-unit"
|
|
15
13
|
end
|
data/Rakefile
CHANGED
|
@@ -4,14 +4,23 @@ require "rake/testtask"
|
|
|
4
4
|
Rake::TestTask.new(:test) do |t|
|
|
5
5
|
t.libs << "test" << "test/lib"
|
|
6
6
|
t.libs << "lib"
|
|
7
|
+
t.ruby_opts << "-rhelper"
|
|
7
8
|
t.test_files = FileList["test/irb/test_*.rb"]
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
Rake::TestTask.new(:test_yamatanooroti) do |t|
|
|
11
|
-
t.libs << 'test'
|
|
12
|
+
t.libs << 'test' << "test/lib"
|
|
12
13
|
t.libs << 'lib'
|
|
13
14
|
#t.loader = :direct
|
|
15
|
+
t.ruby_opts << "-rhelper"
|
|
14
16
|
t.pattern = 'test/irb/yamatanooroti/test_*.rb'
|
|
15
17
|
end
|
|
16
18
|
|
|
19
|
+
task :sync_tool do
|
|
20
|
+
require 'fileutils'
|
|
21
|
+
FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
|
|
22
|
+
FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
|
|
23
|
+
FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
|
|
24
|
+
end
|
|
25
|
+
|
|
17
26
|
task :default => :test
|
data/doc/irb/irb.rd.ja
CHANGED
|
@@ -40,15 +40,18 @@ irbの使い方は, Rubyさえ知っていればいたって簡単です. 基本
|
|
|
40
40
|
irb.rb [options] file_name opts
|
|
41
41
|
options:
|
|
42
42
|
-f ~/.irbrc を読み込まない.
|
|
43
|
-
-m bcモード(分数, 行列の計算ができる)
|
|
44
43
|
-d $DEBUG をtrueにする(ruby -d と同じ)
|
|
45
|
-
-Kc ruby -Kcと同じ
|
|
46
44
|
-r load-module ruby -r と同じ.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
-I path $LOAD_PATH に path を追加する.
|
|
46
|
+
-U ruby -U と同じ.
|
|
47
|
+
-E enc ruby -E と同じ.
|
|
48
|
+
-w ruby -w と同じ.
|
|
49
|
+
-W[level=2] ruby -W と同じ.
|
|
50
|
+
--context-mode n 新しいワークスペースを作成した時に関連する Binding
|
|
51
|
+
オブジェクトの作成方法を 0 から 3 のいずれかに設定する.
|
|
52
|
+
--echo 実行結果を表示する(デフォルト).
|
|
53
|
+
--noecho 実行結果を表示しない.
|
|
54
|
+
--inspect 結果出力にinspectを用いる.
|
|
52
55
|
--noinspect 結果出力にinspectを用いない.
|
|
53
56
|
--singleline シングルラインエディタを利用する.
|
|
54
57
|
--nosingleline シングルラインエディタを利用しない. デフォルトの動
|
|
@@ -56,23 +59,30 @@ irbの使い方は, Rubyさえ知っていればいたって簡単です. 基本
|
|
|
56
59
|
用しようとする.
|
|
57
60
|
--colorize 色付けを利用する.
|
|
58
61
|
--nocolorize 色付けを利用しない.
|
|
62
|
+
--autocomplete オートコンプリートを利用する.
|
|
63
|
+
--noautocomplete オートコンプリートを利用しない.
|
|
59
64
|
--prompt prompt-mode
|
|
60
65
|
--prompt-mode prompt-mode
|
|
61
66
|
プロンプトモードを切替えます. 現在定義されているプ
|
|
62
67
|
ロンプトモードは, default, simple, xmp, inf-rubyが
|
|
63
|
-
用意されています.
|
|
64
|
-
ドになっています.
|
|
65
|
-
|
|
68
|
+
用意されています.
|
|
66
69
|
--inf-ruby-mode emacsのinf-ruby-mode用のプロンプト表示を行なう. 特
|
|
67
70
|
に指定がない限り, ラインエディタは使わなくなる.
|
|
68
71
|
--simple-prompt
|
|
69
72
|
非常にシンプルなプロンプトを用いるモードです.
|
|
70
73
|
--noprompt プロンプト表示を行なわない.
|
|
74
|
+
--single-irb irb 中で self を実行して得られるオブジェクトをサ
|
|
75
|
+
ブ irb と共有する.
|
|
71
76
|
--tracer コマンド実行時にトレースを行なう.
|
|
72
77
|
--back-trace-limit n
|
|
73
78
|
バックトレース表示をバックトレースの頭から n, 後ろ
|
|
74
79
|
からnだけ行なう. デフォルトは16
|
|
75
|
-
|
|
80
|
+
|
|
81
|
+
--verbose 詳細なメッセージを出力する.
|
|
82
|
+
--noverbose 詳細なメッセージを出力しない(デフォルト).
|
|
83
|
+
-v, --version irbのバージョンを表示する.
|
|
84
|
+
-h, --help irb のヘルプを表示する.
|
|
85
|
+
-- 以降のコマンドライン引数をオプションとして扱わない.
|
|
76
86
|
|
|
77
87
|
= コンフィギュレーション
|
|
78
88
|
|
|
@@ -137,12 +147,12 @@ PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cは, フォーマットを指定します.
|
|
|
137
147
|
|
|
138
148
|
例えば, デフォルトのプロンプトモードは:
|
|
139
149
|
|
|
140
|
-
IRB.conf[:
|
|
150
|
+
IRB.conf[:PROMPT][:DEFAULT] = {
|
|
141
151
|
:PROMPT_I => "%N(%m):%03n:%i> ",
|
|
142
152
|
:PROMPT_N => "%N(%m):%03n:%i> ",
|
|
143
153
|
:PROMPT_S => "%N(%m):%03n:%i%l ",
|
|
144
154
|
:PROMPT_C => "%N(%m):%03n:%i* ",
|
|
145
|
-
:RETURN => "%s\n"
|
|
155
|
+
:RETURN => "=> %s\n"
|
|
146
156
|
}
|
|
147
157
|
|
|
148
158
|
となっています.
|
|
@@ -374,7 +384,7 @@ rubyでは, 以下のプログラムはエラーになります.
|
|
|
374
384
|
パイルしてローカル変数を決定するからです. それに対し, irbは実行可能に
|
|
375
385
|
なる(式が閉じる)と自動的に評価しているからです. 上記の例では,
|
|
376
386
|
|
|
377
|
-
|
|
387
|
+
eval "foo = 0"
|
|
378
388
|
|
|
379
389
|
を行なった時点で評価を行ない, その時点で変数が定義されるため, 次式で
|
|
380
390
|
変数fooは定義されているからです.
|
data/irb.gemspec
CHANGED
data/lib/irb/context.rb
CHANGED
|
@@ -54,6 +54,7 @@ module IRB
|
|
|
54
54
|
@use_multiline = nil
|
|
55
55
|
end
|
|
56
56
|
@use_colorize = IRB.conf[:USE_COLORIZE]
|
|
57
|
+
@use_autocomplete = IRB.conf[:USE_AUTOCOMPLETE]
|
|
57
58
|
@verbose = IRB.conf[:VERBOSE]
|
|
58
59
|
@io = nil
|
|
59
60
|
|
|
@@ -185,6 +186,8 @@ module IRB
|
|
|
185
186
|
#
|
|
186
187
|
# A copy of the default <code>IRB.conf[:USE_COLORIZE]</code>
|
|
187
188
|
attr_reader :use_colorize
|
|
189
|
+
# A copy of the default <code>IRB.conf[:USE_AUTOCOMPLETE]</code>
|
|
190
|
+
attr_reader :use_autocomplete
|
|
188
191
|
# A copy of the default <code>IRB.conf[:INSPECT_MODE]</code>
|
|
189
192
|
attr_reader :inspect_mode
|
|
190
193
|
|
|
@@ -311,6 +314,8 @@ module IRB
|
|
|
311
314
|
alias use_readline? use_singleline
|
|
312
315
|
# Alias for #use_colorize
|
|
313
316
|
alias use_colorize? use_colorize
|
|
317
|
+
# Alias for #use_autocomplete
|
|
318
|
+
alias use_autocomplete? use_autocomplete
|
|
314
319
|
# Alias for #rc
|
|
315
320
|
alias rc? rc
|
|
316
321
|
alias ignore_sigint? ignore_sigint
|
data/lib/irb/init.rb
CHANGED
|
@@ -45,6 +45,7 @@ module IRB # :nodoc:
|
|
|
45
45
|
|
|
46
46
|
@CONF[:USE_SINGLELINE] = false unless defined?(ReadlineInputMethod)
|
|
47
47
|
@CONF[:USE_COLORIZE] = !ENV['NO_COLOR']
|
|
48
|
+
@CONF[:USE_AUTOCOMPLETE] = true
|
|
48
49
|
@CONF[:INSPECT_MODE] = true
|
|
49
50
|
@CONF[:USE_TRACER] = false
|
|
50
51
|
@CONF[:USE_LOADER] = false
|
|
@@ -274,6 +275,10 @@ module IRB # :nodoc:
|
|
|
274
275
|
@CONF[:USE_COLORIZE] = true
|
|
275
276
|
when "--nocolorize"
|
|
276
277
|
@CONF[:USE_COLORIZE] = false
|
|
278
|
+
when "--autocomplete"
|
|
279
|
+
@CONF[:USE_AUTOCOMPLETE] = true
|
|
280
|
+
when "--noautocomplete"
|
|
281
|
+
@CONF[:USE_AUTOCOMPLETE] = false
|
|
277
282
|
when /^--prompt-mode(?:=(.+))?/, /^--prompt(?:=(.+))?/
|
|
278
283
|
opt = $1 || argv.shift
|
|
279
284
|
prompt_mode = opt.upcase.tr("-", "_").intern
|
data/lib/irb/input-method.rb
CHANGED
|
@@ -14,6 +14,7 @@ require_relative 'magic-file'
|
|
|
14
14
|
require_relative 'completion'
|
|
15
15
|
require 'io/console'
|
|
16
16
|
require 'reline'
|
|
17
|
+
require 'rdoc'
|
|
17
18
|
|
|
18
19
|
module IRB
|
|
19
20
|
STDIN_FILE_NAME = "(line)" # :nodoc:
|
|
@@ -294,6 +295,10 @@ module IRB
|
|
|
294
295
|
end
|
|
295
296
|
end
|
|
296
297
|
Reline.dig_perfect_match_proc = IRB::InputCompletor::PerfectMatchedProc
|
|
298
|
+
Reline.autocompletion = IRB.conf[:USE_AUTOCOMPLETE]
|
|
299
|
+
if IRB.conf[:USE_AUTOCOMPLETE]
|
|
300
|
+
Reline.add_dialog_proc(:show_doc, SHOW_DOC_DIALOG, Reline::DEFAULT_DIALOG_CONTEXT)
|
|
301
|
+
end
|
|
297
302
|
end
|
|
298
303
|
|
|
299
304
|
def check_termination(&block)
|
|
@@ -308,6 +313,57 @@ module IRB
|
|
|
308
313
|
@auto_indent_proc = block
|
|
309
314
|
end
|
|
310
315
|
|
|
316
|
+
SHOW_DOC_DIALOG = ->() {
|
|
317
|
+
begin
|
|
318
|
+
require 'rdoc'
|
|
319
|
+
rescue LoadError
|
|
320
|
+
return nil
|
|
321
|
+
end
|
|
322
|
+
if just_cursor_moving and completion_journey_data.nil?
|
|
323
|
+
return nil
|
|
324
|
+
end
|
|
325
|
+
cursor_pos_to_render, result, pointer, dialog = context.pop(4)
|
|
326
|
+
return nil if result.nil? or pointer.nil? or pointer < 0
|
|
327
|
+
name = result[pointer]
|
|
328
|
+
name = IRB::InputCompletor.retrieve_completion_data(name, doc_namespace: true)
|
|
329
|
+
|
|
330
|
+
driver = RDoc::RI::Driver.new
|
|
331
|
+
begin
|
|
332
|
+
name = driver.expand_name(name)
|
|
333
|
+
rescue RDoc::RI::Driver::NotFoundError
|
|
334
|
+
return nil
|
|
335
|
+
rescue
|
|
336
|
+
return nil # unknown error
|
|
337
|
+
end
|
|
338
|
+
doc = nil
|
|
339
|
+
used_for_class = false
|
|
340
|
+
if not name =~ /#|\./
|
|
341
|
+
found, klasses, includes, extends = driver.classes_and_includes_and_extends_for(name)
|
|
342
|
+
if not found.empty?
|
|
343
|
+
doc = driver.class_document(name, found, klasses, includes, extends)
|
|
344
|
+
used_for_class = true
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
unless used_for_class
|
|
348
|
+
doc = RDoc::Markup::Document.new
|
|
349
|
+
begin
|
|
350
|
+
driver.add_method(doc, name)
|
|
351
|
+
rescue RDoc::RI::Driver::NotFoundError
|
|
352
|
+
doc = nil
|
|
353
|
+
rescue
|
|
354
|
+
return nil # unknown error
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
return nil if doc.nil?
|
|
358
|
+
formatter = RDoc::Markup::ToAnsi.new
|
|
359
|
+
formatter.width = 40
|
|
360
|
+
str = doc.accept(formatter)
|
|
361
|
+
|
|
362
|
+
x = cursor_pos_to_render.x + 40
|
|
363
|
+
y = cursor_pos_to_render.y + pointer - dialog.scroll_top
|
|
364
|
+
DialogRenderInfo.new(pos: Reline::CursorPos.new(x, y), contents: str.split("\n"), bg_color: '49')
|
|
365
|
+
}
|
|
366
|
+
|
|
311
367
|
# Reads the next line from this input method.
|
|
312
368
|
#
|
|
313
369
|
# See IO#gets for more information.
|
data/lib/irb/lc/help-message
CHANGED
|
@@ -30,6 +30,8 @@ Usage: irb.rb [options] [programfile] [arguments]
|
|
|
30
30
|
--nosingleline Don't use singleline editor module
|
|
31
31
|
--colorize Use colorization
|
|
32
32
|
--nocolorize Don't use colorization
|
|
33
|
+
--autocomplete Use autocompletion
|
|
34
|
+
--noautocomplete Don't use autocompletion
|
|
33
35
|
--prompt prompt-mode/--prompt-mode prompt-mode
|
|
34
36
|
Switch prompt mode. Pre-defined prompt modes are
|
|
35
37
|
`default', `simple', `xmp' and `inf-ruby'
|
data/lib/irb/lc/ja/help-message
CHANGED
|
@@ -29,6 +29,8 @@ Usage: irb.rb [options] [programfile] [arguments]
|
|
|
29
29
|
--nosingleline シングルラインエディタを利用しない.
|
|
30
30
|
--colorize 色付けを利用する.
|
|
31
31
|
--nocolorize 色付けを利用しない.
|
|
32
|
+
--autocomplete オートコンプリートを利用する.
|
|
33
|
+
--noautocomplete オートコンプリートを利用しない.
|
|
32
34
|
--prompt prompt-mode/--prompt-mode prompt-mode
|
|
33
35
|
プロンプトモードを切替えます. 現在定義されているプ
|
|
34
36
|
ロンプトモードは, default, simple, xmp, inf-rubyが
|
data/lib/irb/version.rb
CHANGED
data/lib/irb.rb
CHANGED
|
@@ -72,6 +72,8 @@ require_relative "irb/easter-egg"
|
|
|
72
72
|
# --nosingleline Don't use singleline editor module
|
|
73
73
|
# --colorize Use colorization
|
|
74
74
|
# --nocolorize Don't use colorization
|
|
75
|
+
# --autocomplete Use autocompletion
|
|
76
|
+
# --noautocomplete Don't use autocompletion
|
|
75
77
|
# --prompt prompt-mode/--prompt-mode prompt-mode
|
|
76
78
|
# Switch prompt mode. Pre-defined prompt modes are
|
|
77
79
|
# `default', `simple', `xmp' and `inf-ruby'
|
|
@@ -114,6 +116,7 @@ require_relative "irb/easter-egg"
|
|
|
114
116
|
# IRB.conf[:USE_SINGLELINE] = nil
|
|
115
117
|
# IRB.conf[:USE_COLORIZE] = true
|
|
116
118
|
# IRB.conf[:USE_TRACER] = false
|
|
119
|
+
# IRB.conf[:USE_AUTOCOMPLETE] = true
|
|
117
120
|
# IRB.conf[:IGNORE_SIGINT] = true
|
|
118
121
|
# IRB.conf[:IGNORE_EOF] = false
|
|
119
122
|
# IRB.conf[:PROMPT_MODE] = :DEFAULT
|
data/man/irb.1
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
.Op Fl - Ns Oo no Oc Ns singleline
|
|
19
19
|
.Op Fl - Ns Oo no Oc Ns echo
|
|
20
20
|
.Op Fl - Ns Oo no Oc Ns colorize
|
|
21
|
+
.Op Fl - Ns Oo no Oc Ns autocomplete
|
|
21
22
|
.Op Fl - Ns Oo no Oc Ns verbose
|
|
22
23
|
.Op Fl -prompt Ar mode
|
|
23
24
|
.Op Fl -prompt-mode Ar mode
|
|
@@ -118,6 +119,13 @@ Use colorization.
|
|
|
118
119
|
Don't use colorization.
|
|
119
120
|
.Pp
|
|
120
121
|
.Pp
|
|
122
|
+
.It Fl -autocomplete
|
|
123
|
+
Use autocompletion.
|
|
124
|
+
.Pp
|
|
125
|
+
.It Fl -noautocomplete
|
|
126
|
+
Don't use autocompletion.
|
|
127
|
+
.Pp
|
|
128
|
+
.Pp
|
|
121
129
|
.It Fl -verbose
|
|
122
130
|
Show details.
|
|
123
131
|
.Pp
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: irb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.8.pre.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Keiju ISHITSUKA
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-08-
|
|
11
|
+
date: 2021-08-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: reline
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.2.
|
|
19
|
+
version: 0.2.8.pre.4
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.2.
|
|
26
|
+
version: 0.2.8.pre.4
|
|
27
27
|
description: Interactive Ruby command-line tool for REPL (Read Eval Print Loop).
|
|
28
28
|
email:
|
|
29
29
|
- keiju@ruby-lang.org
|
|
@@ -108,9 +108,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
108
108
|
version: '2.5'
|
|
109
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements:
|
|
111
|
-
- - "
|
|
111
|
+
- - ">"
|
|
112
112
|
- !ruby/object:Gem::Version
|
|
113
|
-
version:
|
|
113
|
+
version: 1.3.1
|
|
114
114
|
requirements: []
|
|
115
115
|
rubygems_version: 3.2.22
|
|
116
116
|
signing_key:
|