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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24e47cee826906315d012e38c51e586295517aa5973cb581bdd69565013eb4fd
4
- data.tar.gz: a18f6ca335c55748a79d3670fec5bba5125ca0c413f9aead0a1b6552ce4dd8b0
3
+ metadata.gz: 9111a8fd3a668dc40c243c704b87772c27b0aa877351b7bcf2ade56051683ef9
4
+ data.tar.gz: 66e1935b40130dc3fcdafb094b29fcafe4825e6c324f92cb471d5b98b329b41c
5
5
  SHA512:
6
- metadata.gz: 3e869bf3f5e4cfaba313977894f5632485fc0757c9d353cff96ce17b4734b56d1050e76a5716090940a7ddb072f8a223711891038b56a4f9415950b3d68e0de8
7
- data.tar.gz: d872b90f23591f57fce7d3c7d9be345aa6e4441c561817504f85dddf08fff8a7c3512157c375ccc5e2cd94c812161bd06ef315b6c834ae4e97c90da8957fb91b
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
@@ -36,5 +36,5 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.required_ruby_version = Gem::Requirement.new(">= 2.5")
38
38
 
39
- spec.add_dependency "reline", ">= 0.2.8.pre.3"
39
+ spec.add_dependency "reline", ">= 0.2.8.pre.7"
40
40
  end
@@ -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
- candidates.find{ |i| i == input }
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
@@ -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(3)
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 = 40
360
- str = doc.accept(formatter)
361
-
362
- [Reline::CursorPos.new(cursor_pos_to_render.x + 40, cursor_pos_to_render.y + pointer), str.split("\n"), nil, '49']
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
@@ -11,7 +11,7 @@
11
11
  #
12
12
 
13
13
  module IRB # :nodoc:
14
- VERSION = "1.3.8.pre.3"
14
+ VERSION = "1.3.8.pre.7"
15
15
  @RELEASE_VERSION = VERSION
16
- @LAST_UPDATE_DATE = "2021-08-30"
16
+ @LAST_UPDATE_DATE = "2021-09-04"
17
17
  end
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.3
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-08-30 00:00:00.000000000 Z
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.3
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.3
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