123456789_123456789_123456789_123456789_123456789_

Class: IRB::IRB

Relationships & Source Files
Inherits: Object
Defined in: lib/irb/init.rb

Class Method Summary

Class Method Details

.generate_current_dir_irbrc_files (private)

possible irbrc files in current directory

[ GitHub ]

  
# File 'lib/irb/init.rb', line 519

def generate_current_dir_irbrc_files
  current_dir = Dir.pwd
  %w[.irbrc irbrc _irbrc $irbrc].map { |file| "#{current_dir}/#{file}" }
end

.prepare_irbrc_name_generators (private)

[ GitHub ]

  
# File 'lib/irb/init.rb', line 481

def prepare_irbrc_name_generators
  return if @existing_rc_name_generators

  @existing_rc_name_generators = []
  @irbrc_files = []
  rc_file_generators do |rcgen|
    irbrc = rcgen.call(IRBRC_EXT)
    if File.exist?(irbrc)
      @irbrc_files << irbrc
      @existing_rc_name_generators << rcgen
    end
  end
  generate_current_dir_irbrc_files.each do |irbrc|
    @irbrc_files << irbrc if File.exist?(irbrc)
  end
  @irbrc_files.uniq!
end

.rc_file_generators (private)

enumerate possible rc-file base name generators

[ GitHub ]

  
# File 'lib/irb/init.rb', line 500

def rc_file_generators
  if irbrc = ENV["IRBRC"]
    yield proc{|rc| rc == "rc" ? irbrc : irbrc+rc}
  end
  if xdg_config_home = ENV["XDG_CONFIG_HOME"]
    irb_home = File.join(xdg_config_home, "irb")
    if File.directory?(irb_home)
      yield proc{|rc| irb_home + "/irb#{rc}"}
    end
  end
  if home = ENV["HOME"]
    yield proc{|rc| home+"/.irb#{rc}"}
    if xdg_config_home.nil? || xdg_config_home.empty?
      yield proc{|rc| home+"/.config/irb/irb#{rc}"}
    end
  end
end

.set_encoding(extern, intern = nil, override: true) (private)

[ GitHub ]

  
# File 'lib/irb/init.rb', line 524

def set_encoding(extern, intern = nil, override: true)
  verbose, $VERBOSE = $VERBOSE, nil
  Encoding.default_external = extern unless extern.nil? || extern.empty?
  Encoding.default_internal = intern unless intern.nil? || intern.empty?
  [$stdin, $stdout, $stderr].each do |io|
    io.set_encoding(extern, intern)
  end
  if override
    @CONF[:LC_MESSAGES].instance_variable_set(:@override_encoding, extern)
  else
    @CONF[:LC_MESSAGES].instance_variable_set(:@encoding, extern)
  end
ensure
  $VERBOSE = verbose
end