Class: IRB::ExtendCommand::Edit
    Do not use.  This class is for internal use only.
  
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           Nop | |
| Instance Chain: 
          self,
           Nop | |
| Inherits: | IRB::ExtendCommand::Nop 
 | 
| Defined in: | lib/irb/cmd/edit.rb | 
Class Method Summary
Nop - Inherited
| .category, .description, | |
| .execute | See additional method definition at line 39. | 
| .new, .string_literal? | |
Instance Attribute Summary
Nop - Inherited
Instance Method Summary
Constructor Details
This class inherits a constructor from IRB::ExtendCommand::Nop
Class Method Details
.transform_args(args)
[ GitHub ]# File 'lib/irb/cmd/edit.rb', line 13
def transform_args(args) # Return a string literal as is for backward compatibility if args.nil? || args.empty? || string_literal?(args) args else # Otherwise, consider the input as a String for convenience args.strip.dump end end
Instance Method Details
#execute(*args)
[ GitHub ]# File 'lib/irb/cmd/edit.rb', line 23
def execute(*args) path = args.first if path.nil? && (irb_path = @irb_context.irb_path) path = irb_path end if !File.exist?(path) require_relative "show_source" source = begin ShowSource.find_source(path, @irb_context) rescue NameError # if user enters a path that doesn't exist, it'll cause NameError when passed here because find_source would try to evaluate it as well # in this case, we should just ignore the error end if source && File.exist?(source.file) path = source.file else puts "Can not find file: #{path}" return end end if editor = ENV['EDITOR'] puts "command: '#{editor}'" puts " path: #{path}" system(*Shellwords.split(editor), path) else puts "Can not find editor setting: ENV['EDITOR']" end end