PATH:
opt
/
alt
/
ruby34
/
share
/
gems
/
gems
/
irb-1.14.3
/
lib
/
irb
/
command
require 'shellwords' require_relative "../color" require_relative "../source_finder" module IRB # :stopdoc: module Command class Edit < Base include RubyArgsExtractor category "Misc" description 'Open a file or source location.' help_message <<~HELP_MESSAGE Usage: edit [FILE or constant or method signature] Open a file in the editor specified in #{highlight('ENV["VISUAL"]')} or #{highlight('ENV["EDITOR"]')} - If no arguments are provided, IRB will attempt to open the file the current context was defined in. - If FILE is provided, IRB will open the file. - If a constant or method signature is provided, IRB will attempt to locate the source file and open it. Examples: edit edit foo.rb edit Foo edit Foo#bar HELP_MESSAGE def execute(arg) # Accept string literal for backward compatibility path = unwrap_string_literal(arg) if path.nil? path = @irb_context.irb_path elsif !File.exist?(path) source = SourceFinder.new(@irb_context).find_source(path) if source&.file_exist? && !source.binary_file? path = source.file end end unless File.exist?(path) puts "Can not find file: #{path}" return end if editor = (ENV['VISUAL'] || ENV['EDITOR']) puts "command: '#{editor}'" puts " path: #{path}" system(*Shellwords.split(editor), path) else puts "Can not find editor setting: ENV['VISUAL'] or ENV['EDITOR']" end end end end # :startdoc: end
[-] subirb.rb
[edit]
[-] catch.rb
[edit]
[-] continue.rb
[edit]
[-] force_exit.rb
[edit]
[-] chws.rb
[edit]
[-] load.rb
[edit]
[-] break.rb
[edit]
[-] whereami.rb
[edit]
[-] history.rb
[edit]
[-] disable_irb.rb
[edit]
[-] irb_info.rb
[edit]
[-] show_source.rb
[edit]
[-] next.rb
[edit]
[-] delete.rb
[edit]
[-] finish.rb
[edit]
[-] step.rb
[edit]
[-] debug.rb
[edit]
[-] show_doc.rb
[edit]
[-] internal_helpers.rb
[edit]
[-] info.rb
[edit]
[-] pushws.rb
[edit]
[-] help.rb
[edit]
[-] base.rb
[edit]
[-] backtrace.rb
[edit]
[-] ls.rb
[edit]
[-] cd.rb
[edit]
[+]
..
[-] edit.rb
[edit]
[-] measure.rb
[edit]
[-] exit.rb
[edit]
[-] context.rb
[edit]