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 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