ruby/irb

Config file placed at the project level at `.config/irb/irbrc` is not parsed.

artur-intech opened this issue · 2 comments

The documentation states that:

The path to the configuration file is the first found among:
File +.config/irb/irbrc+ in the current directory, if it exists.

https://github.com/ruby/irb/blob/master/lib/irb.rb#L148

but there seems to be no code which would do this. Creating such file does nothing in reality as well: I have a project under ~/projects/notes and if I create a config file at ~/projects/notes/.config/irb/irbrc and put something like puts "test" there, nothing is printed when I run irb being at the project root.

current_dir = Dir.pwd

I really see beneficial to put a config file just under .config/irb/irbrc of my project instead of polluting project root, so I would like to double-check that it is a bug, rather than misleading documentation.

The document is wrong.
$XDG_CONFIG_HOME/irb/irbrc and $HOME/.config/irb/irbrc part is based on XDG Base Directory Specification

$XDG_CONFIG_HOME defines the base directory relative to which user-specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

Project level config is a good idea, but I'd like to align with other tool's config directory name.
If project level ./.config/ is not so commonly used, I think it's too early to implement it.

My .irbrc has require_relative 'app' (where app is a file in the project root), so in my case it is crucial to have project-specific config since I couldn't find any other option so solve it another way.

I haven't done proper research on this topic yet, but the same approach is already implemented in Rubocop.

I think it is worth removing misleading documentation until we sort out this issue.

P.S. I fixed the line number in my first comment.