Skip to content

IRB errors when autocompleting commands #557

Closed
@nick-lawrence-ctm

Description

@nick-lawrence-ctm

Description

IRB errors when using autocomplete

Expected behavior

Should be able to type things like Model.find(1).id without errors

Actual Behavior

Typing User.find(1) the instant I type the . after the find command,

/app/vendor/bundle/ruby/3.2.0/gems/whenever-1.0.0/lib/whenever/job_list.rb:41:in `respond_to?': undefined method `has_key?' for nil:NilClass (NoMethodError)

      @set_variables.has_key?(name) || super
                    ^^^^^^^^^
	from /usr/lib64/ruby/3.2.0/irb/completion.rb:364:in `block in retrieve_completion_data'
	from /usr/lib64/ruby/3.2.0/irb/completion.rb:362:in `each_object'
	from /usr/lib64/ruby/3.2.0/irb/completion.rb:362:in `retrieve_completion_data'
	from /usr/lib64/ruby/3.2.0/irb/completion.rb:161:in `block in <module:InputCompletor>'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:1691:in `call_completion_proc_with_checking_args'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:545:in `call_completion_proc_with_checking_args'
	from /usr/lib64/ruby/3.2.0/reline.rb:234:in `block in <class:Core>'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:590:in `instance_exec'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:590:in `call'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:625:in `call'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:672:in `render_each_dialog'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:653:in `block in render_dialog'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:652:in `each'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:652:in `render_dialog'
	from /usr/lib64/ruby/3.2.0/reline/line_editor.rb:512:in `rerender'
	from /usr/lib64/ruby/3.2.0/reline.rb:347:in `block (3 levels) in inner_readline'
	from /usr/lib64/ruby/3.2.0/reline.rb:345:in `each'
	from /usr/lib64/ruby/3.2.0/reline.rb:345:in `block (2 levels) in inner_readline'
	from /usr/lib64/ruby/3.2.0/reline.rb:420:in `block in read_io'
	from /usr/lib64/ruby/3.2.0/reline.rb:390:in `loop'
	from /usr/lib64/ruby/3.2.0/reline.rb:390:in `read_io'
	from /usr/lib64/ruby/3.2.0/reline.rb:343:in `block in inner_readline'
	from /usr/lib64/ruby/3.2.0/reline.rb:341:in `loop'
	from /usr/lib64/ruby/3.2.0/reline.rb:341:in `inner_readline'
	from /usr/lib64/ruby/3.2.0/reline.rb:271:in `readmultiline'
	from /usr/lib64/ruby/3.2.0/forwardable.rb:240:in `readmultiline'
	from /usr/lib64/ruby/3.2.0/forwardable.rb:240:in `readmultiline'
	from /usr/lib64/ruby/3.2.0/irb/input-method.rb:422:in `gets'
	from /usr/lib64/ruby/3.2.0/irb.rb:548:in `block (2 levels) in eval_input'
	from /usr/lib64/ruby/3.2.0/irb.rb:777:in `signal_status'
	from /usr/lib64/ruby/3.2.0/irb.rb:547:in `block in eval_input'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:283:in `lex'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:252:in `block (2 levels) in each_top_level_statement'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:249:in `loop'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:249:in `block in each_top_level_statement'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:248:in `catch'
	from /usr/lib64/ruby/3.2.0/irb/ruby-lex.rb:248:in `each_top_level_statement'
	from /usr/lib64/ruby/3.2.0/irb.rb:566:in `eval_input'
	from /usr/lib64/ruby/3.2.0/irb.rb:500:in `block in run'
	from /usr/lib64/ruby/3.2.0/irb.rb:499:in `catch'
	from /usr/lib64/ruby/3.2.0/irb.rb:499:in `run'
	from /usr/lib64/ruby/3.2.0/irb.rb:421:in `start'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/commands/console/console_command.rb:70:in `start'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/commands/console/console_command.rb:19:in `start'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/commands/console/console_command.rb:102:in `perform'
	from /app/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
	from /app/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
	from /app/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/command/base.rb:69:in `perform'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/command.rb:48:in `invoke'
	from /app/vendor/bundle/ruby/3.2.0/gems/railties-6.1.7.3/lib/rails/commands.rb:18:in `<main>'
	from /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from bin/rails:4:in `<main>'

Result of irb_info

irb(main):001:0> irb_info
=>
Ruby version: 3.2.2
IRB version: irb 1.6.2 (2022-12-13)
InputMethod: RelineInputMethod with Reline 0.3.2
RUBY_PLATFORM: x86_64-linux
LANG env: en_US.UTF-8
East Asian Ambiguous Width: 1

Terminal Emulator

iTerm2 Build 3.4.15

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions