irb 1.3.8.pre.3 → 1.3.8.pre.7
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/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
|