Reputation:
I am experiencing mysterious return value after accidentally typing "version" in Ruby irb REPL:
~ $ ruby --disable-gems -e "exec 'irb'"
« version
˙·˙ ">= 0.a" »
«
~/.irbrc file content:
# This is the .irbrc configuration file
IRB.conf[:SAVE_HISTORY] = 1000000 # increase the number of commands that can be saved
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history"
# Set up a DEFAULT prompt for IRB
## IRB.conf[:PROMPT][:CUSTOM] = {
## PROMPT_I: "%N(%m):%03n:%i> ", # Default showing program name %N , main object %m , line number %03n , and indent level %i .
## PROMPT_S: "%N(%m):%03n:%i%l ", # Continue for strings with line and local variable levels
## PROMPT_C: "%N(%m):%03n:%i* ", # Continue for statements
## RETURN: "%s\n" # Format of returned values
## }
# Set up a CUSTOM prompt for IRB
IRB.conf[:PROMPT][:CUSTOM] = {
PROMPT_I: "« ",
PROMPT_S: "· ",
PROMPT_C: "˙ ",
RETURN: " ˙·˙ %s »\n"
}
IRB.conf[:PROMPT_MODE] = :CUSTOM
# Additional configurations can be added below
~ $ type version
bash: type: version: not found
~ $ alias version
bash: alias: version: not found
« $VERBOSE = true
˙·˙ true »
« ObjectSpace.each_object(Module).select { |m| m.instance_methods.include?(:versi
on) || m.methods.include?(:version) }
˙·˙
[Gem::UnsatisfiableDependencyError,
Gem::StubSpecification::StubLine,
Gem::StubSpecification,
Gem::SpecificGemNotFoundException,
Gem::Specification,
Gem::PlatformMismatch,
Gem::Version,
Gem::Platform,
Gem::BasicSpecification,
Gem::Resolver::ActivationRequest,
Gem::Resolver::SpecSpecification,
Gem::Resolver::Specification,
Gem::Resolver::IndexSpecification,
Gem::Resolver::GitSpecification,
Gem::Resolver::APISpecification,
Gem::Resolver::VendorSpecification,
Gem::Resolver::LockSpecification,
Gem::Resolver::LocalSpecification,
Gem::Resolver::InstalledSpecification,
#<Class:IRB>,
IRB] »
«
« version
˙·˙ ">= 0.a" »
« method(:version).source_location
(irb):2:in `method': undefined method `version' for class `#<Class:#<Object:0x0000557274974488>>' (NameError)
from (irb):2:in `<main>'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
from /usr/bin/irb:23:in `load'
from /usr/bin/irb:23:in `<main>'
« puts RUBY_VERSION
3.0.2
˙·˙ nil »
« `version`
(irb):4:in ``': No such file or directory - version (Errno::ENOENT)
from (irb):4:in `<main>'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
from /usr/bin/irb:23:in `load'
from /usr/bin/irb:23:in `<main>'
«
« puts ENV['version']
˙·˙ nil »
«
« global_variables # List all global variables
« methods # List all methods available in the main object context
˙·˙
[:irb_pushws,
:pushws,
:irb_push_binding,
:irb_pushb,
:pushb,
:irb_popws,
:popws,
:irb_pop_binding,
:irb_popb,
:popb,
:context,
:source,
:jobs,
:fg,
:help,
:conf,
:ls,
:measure,
:show_source,
:inspect,
:whereami,
:to_s,
:kill,
:exit,
:irb_quit,
:quit,
:irb_print_working_workspace,
:irb_cwws,
:irb_pwws,
:cwws,
:pwws,
:irb_current_working_binding,
:irb_print_working_binding,
:irb_cwb,
:irb_pwb,
:irb_chws,
:irb_cws,
:chws,
:cws,
:irb_change_binding,
:irb_cb,
:cb,
:workspaces,
:irb_bindings,
:bindings,
:irb_ls,
:irb_context,
:irb,
:irb_measure,
:irb_current_working_workspace,
:irb_pop_workspace,
:irb_show_source,
:irb_exit,
:irb_whereami,
:irb_load,
:irb_require,
:irb_change_workspace,
:install_alias_method,
:irb_jobs,
:irb_source,
:irb_fg,
:irb_kill,
:irb_workspaces,
:irb_help,
:irb_info,
:irb_push_workspace,
:pretty_print_inspect,
:pretty_print_instance_variables,
:pretty_print_cycle,
:pretty_print,
:taint,
:tainted?,
:untaint,
:untrust,
:untrusted?,
:trust,
:methods,
:singleton_methods,
:protected_methods,
:private_methods,
:public_methods,
:instance_variables,
:instance_variable_get,
:instance_variable_set,
:instance_variable_defined?,
:remove_instance_variable,
:instance_of?,
:kind_of?,
:is_a?,
:class,
:frozen?,
:then,
:public_send,
:method,
:public_method,
:singleton_method,
:tap,
:define_singleton_method,
:extend,
:clone,
:yield_self,
:pretty_inspect,
:to_enum,
:enum_for,
:<=>,
:===,
:=~,
:!~,
:nil?,
:eql?,
:respond_to?,
:freeze,
:object_id,
:send,
:display,
:hash,
:singleton_class,
:dup,
:itself,
:!,
:==,
:!=,
:equal?,
:instance_eval,
:instance_exec,
:__id__,
:__send__] »
«
~ $ gem contents --all | grep -i version
/usr/lib/ruby/3.0.0/did_you_mean/version.rb
/usr/lib/ruby/3.0.0/psych/versions.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/RedCloth-4.3.2/lib/redcloth/version.rb
/usr/share/rubygems-integration/all/gems/abstract_type-0.0.7/lib/abstract_type/version.rb
/usr/share/rubygems-integration/all/gems/addressable-2.8.0/lib/addressable/version.rb
/usr/share/rubygems-integration/all/gems/base32-0.3.4/lib/base32/version.rb
/usr/lib/ruby/3.0.0/benchmark/version.rb
/usr/lib/ruby/3.0.0/bundler/gem_version_promoter.rb
/usr/lib/ruby/3.0.0/bundler/ruby_version.rb
/usr/lib/ruby/3.0.0/bundler/vendor/connection_pool/lib/connection_pool/version.rb
/usr/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/version.rb
/usr/lib/ruby/3.0.0/bundler/vendor/uri/lib/uri/version.rb
/usr/lib/ruby/3.0.0/bundler/version.rb
/usr/lib/ruby/3.0.0/bundler/version_ranges.rb
/usr/share/rubygems-integration/all/gems/colored2-3.1.2/lib/colored2/version.rb
/usr/share/rubygems-integration/all/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/version.rb
/usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.6.0/lib/concurrent-ruby-edge/concurrent/edge/version.rb
/usr/share/rubygems-integration/all/gems/console-1.10.1/lib/console/version.rb
/usr/lib/ruby/3.0.0/csv/version.rb
/usr/lib/ruby/3.0.0/drb/version.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/enumerable-statistics-2.0.7/lib/enumerable_statistics/version.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/ffi-1.15.4/lib/ffi/version.rb
/usr/share/rubygems-integration/all/gems/fiber-local-1.0.0/lib/fiber/local/version.rb
/usr/lib/ruby/3.0.0/fiddle/version.rb
/usr/share/rubygems-integration/all/gems/i18n-1.8.11/lib/i18n/version.rb
/usr/share/rubygems-integration/all/gems/i18n_data-0.10.0/lib/i18n_data/version.rb
/usr/lib/ruby/3.0.0/irb/version.rb
/usr/lib/ruby/3.0.0/json/version.rb
/usr/share/rubygems-integration/all/gems/kramdown-2.3.1/VERSION
/usr/share/rubygems-integration/all/gems/kramdown-2.3.1/lib/kramdown/version.rb
/usr/share/rubygems-integration/all/gems/libnotify-0.9.4/lib/libnotify/version.rb
/usr/lib/ruby/3.0.0/logger/version.rb
/usr/lib/ruby/3.0.0/matrix/version.rb
/usr/share/rubygems-integration/all/gems/mini_magick-4.11.0/lib/mini_magick/version.rb
/usr/share/rubygems-integration/all/gems/mini_portile2-2.7.1/lib/mini_portile2/version.rb
/usr/share/rubygems-integration/all/gems/mixlib-cli-2.1.6/lib/mixlib/cli/version.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/nokogiri-1.13.1/lib/nokogiri/version.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/nokogiri-1.13.1/lib/nokogiri/version/constant.rb
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0/gems/nokogiri-1.13.1/lib/nokogiri/version/info.rb
/usr/lib/ruby/3.0.0/openssl/version.rb
/usr/lib/ruby/3.0.0/optparse/version.rb
/usr/share/rubygems-integration/all/gems/peach-0.5.1/lib/peach/version.rb
/usr/lib/ruby/gems/3.0.0/gems/power_assert-1.2.0/lib/power_assert/version.rb
/var/lib/gems/3.0.0/gems/pry-0.14.2/lib/pry/commands/pry_version.rb
/var/lib/gems/3.0.0/gems/pry-0.14.2/lib/pry/version.rb
/var/lib/gems/3.0.0/gems/pry-0.14.2/lib/pry/commands/pry_version.rb
/var/lib/gems/3.0.0/gems/pry-0.14.2/lib/pry/version.rb
/usr/share/rubygems-integration/all/gems/public_suffix-4.0.6/lib/public_suffix/version.rb
/usr/share/rubygems-integration/all/gems/rake-13.0.6/lib/rake/version.rb
/usr/share/rubygems-integration/all/gems/rake-13.0.6/lib/rake/version.rb
/usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/lib/rbs/version.rb
/usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/sig/version.rbs
/usr/lib/ruby/3.0.0/rdoc/version.rb
/usr/lib/ruby/3.0.0/reline/version.rb
/usr/share/rubygems-integration/all/gems/rspec-3.10.0/lib/rspec/version.rb
/usr/share/rubygems-integration/all/gems/rspec-core-3.10.1/lib/rspec/core/version.rb
/usr/share/rubygems-integration/all/gems/rspec-expectations-3.10.1/lib/rspec/expectations/version.rb
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.10.2/lib/rspec/mocks/version.rb
/usr/share/rubygems-integration/all/gems/rspec-support-3.10.3/lib/rspec/support/comparable_version.rb
/usr/share/rubygems-integration/all/gems/rspec-support-3.10.3/lib/rspec/support/version.rb
/usr/lib/ruby/gems/3.0.0/gems/rss-0.2.9/lib/rss/version.rb
/usr/share/rubygems-integration/all/gems/ruby-progressbar-1.11.0/lib/ruby-progressbar/version.rb
/usr/lib/ruby/gems/3.0.0/gems/test-unit-3.3.7/lib/test/unit/version.rb
/usr/lib/ruby/gems/3.0.0/gems/typeprof-0.12.0/lib/typeprof/version.rb
/usr/share/rubygems-integration/all/gems/unicode_plot-0.0.4/lib/unicode_plot/version.rb
/usr/lib/ruby/3.0.0/uri/version.rb
/usr/share/rubygems-integration/all/gems/webrick-1.7.0/lib/webrick/httpversion.rb
/usr/share/rubygems-integration/all/gems/webrick-1.7.0/lib/webrick/version.rb
~ $
What could be the reason for this output?
Upvotes: 1
Views: 37