irb 1.3.8.pre.3 → 1.3.8.pre.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -3
- data/Rakefile +10 -1
- data/irb.gemspec +1 -1
- data/lib/irb/completion.rb +11 -4
- data/lib/irb/input-method.rb +23 -6
- data/lib/irb/version.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9111a8fd3a668dc40c243c704b87772c27b0aa877351b7bcf2ade56051683ef9
|
4
|
+
data.tar.gz: 66e1935b40130dc3fcdafb094b29fcafe4825e6c324f92cb471d5b98b329b41c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9a0afbbfc552c70397c393bdcb256fa384d620d5ccc474a77d8ad15d44f33cdd7c338311d851eb20debdcff33a6fdb52f6933e6220075dec0af02a1362490a4
|
7
|
+
data.tar.gz: be4b412586138fe03ac49c030a26f53788ac8e597f0116807ff6e0981e877e146fae1c183886e9e8163cea05f658acc6405c38dbb4405866bc172b04c2bbc3f0
|
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/irb.gemspec
CHANGED
data/lib/irb/completion.rb
CHANGED
@@ -315,12 +315,19 @@ module IRB
|
|
315
315
|
end
|
316
316
|
|
317
317
|
else
|
318
|
-
candidates = eval("methods | private_methods | local_variables | instance_variables | self.class.constants", bind).collect{|m| m.to_s}
|
319
|
-
candidates |= ReservedWords
|
320
|
-
|
321
318
|
if doc_namespace
|
322
|
-
|
319
|
+
vars = eval("local_variables | instance_variables", bind).collect{|m| m.to_s}
|
320
|
+
perfect_match_var = vars.find{|m| m.to_s == input}
|
321
|
+
if perfect_match_var
|
322
|
+
eval("#{perfect_match_var}.class.name", bind)
|
323
|
+
else
|
324
|
+
candidates = eval("methods | private_methods | local_variables | instance_variables | self.class.constants", bind).collect{|m| m.to_s}
|
325
|
+
candidates |= ReservedWords
|
326
|
+
candidates.find{ |i| i == input }
|
327
|
+
end
|
323
328
|
else
|
329
|
+
candidates = eval("methods | private_methods | local_variables | instance_variables | self.class.constants", bind).collect{|m| m.to_s}
|
330
|
+
candidates |= ReservedWords
|
324
331
|
candidates.grep(/^#{Regexp.quote(input)}/)
|
325
332
|
end
|
326
333
|
end
|
data/lib/irb/input-method.rb
CHANGED
@@ -314,20 +314,31 @@ module IRB
|
|
314
314
|
end
|
315
315
|
|
316
316
|
SHOW_DOC_DIALOG = ->() {
|
317
|
+
dialog.trap_key = nil
|
318
|
+
alt_d = Reline::Key.new(nil, 0xE4, true)
|
317
319
|
begin
|
318
320
|
require 'rdoc'
|
319
321
|
rescue LoadError
|
320
322
|
return nil
|
321
323
|
end
|
324
|
+
|
322
325
|
if just_cursor_moving and completion_journey_data.nil?
|
323
326
|
return nil
|
324
327
|
end
|
325
|
-
cursor_pos_to_render, result, pointer = context.pop(
|
326
|
-
return nil if result.nil? or pointer.nil?
|
328
|
+
cursor_pos_to_render, result, pointer, autocomplete_dialog = context.pop(4)
|
329
|
+
return nil if result.nil? or pointer.nil? or pointer < 0
|
327
330
|
name = result[pointer]
|
328
331
|
name = IRB::InputCompletor.retrieve_completion_data(name, doc_namespace: true)
|
329
332
|
|
330
333
|
driver = RDoc::RI::Driver.new
|
334
|
+
|
335
|
+
if key.match?(alt_d)
|
336
|
+
begin
|
337
|
+
driver.display_names([name])
|
338
|
+
rescue RDoc::RI::Driver::NotFoundError
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
331
342
|
begin
|
332
343
|
name = driver.expand_name(name)
|
333
344
|
rescue RDoc::RI::Driver::NotFoundError
|
@@ -355,11 +366,17 @@ module IRB
|
|
355
366
|
end
|
356
367
|
end
|
357
368
|
return nil if doc.nil?
|
369
|
+
width = 40
|
358
370
|
formatter = RDoc::Markup::ToAnsi.new
|
359
|
-
formatter.width =
|
360
|
-
|
361
|
-
|
362
|
-
[
|
371
|
+
formatter.width = width
|
372
|
+
dialog.trap_key = alt_d
|
373
|
+
message = 'Press Alt+d to read the full document'
|
374
|
+
contents = [message] + doc.accept(formatter).split("\n")
|
375
|
+
|
376
|
+
x = cursor_pos_to_render.x + autocomplete_dialog.width
|
377
|
+
x = autocomplete_dialog.column - width if x + width >= screen_width
|
378
|
+
y = cursor_pos_to_render.y
|
379
|
+
DialogRenderInfo.new(pos: Reline::CursorPos.new(x, y), contents: contents, width: width, bg_color: '49')
|
363
380
|
}
|
364
381
|
|
365
382
|
# Reads the next line from this input method.
|
data/lib/irb/version.rb
CHANGED
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.8.pre.
|
4
|
+
version: 1.3.8.pre.7
|
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-
|
11
|
+
date: 2021-09-03 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.8.pre.
|
19
|
+
version: 0.2.8.pre.7
|
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.8.pre.
|
26
|
+
version: 0.2.8.pre.7
|
27
27
|
description: Interactive Ruby command-line tool for REPL (Read Eval Print Loop).
|
28
28
|
email:
|
29
29
|
- keiju@ruby-lang.org
|