class IRB::Command::Copy
Public Instance Methods
Source
# File bundled-src/irb-1.16.0/lib/irb/command/copy.rb, line 23 def execute(arg) # Copy last value if no expression was supplied arg = '_' if arg.to_s.strip.empty? value = irb_context.workspace.binding.eval(arg) output = irb_context.inspect_method.inspect_value(value, +'', colorize: false).chomp if clipboard_available? copy_to_clipboard(output) else warn "System clipboard not found" end rescue StandardError => e warn "Error: #{e}" end
Private Instance Methods
Source
# File bundled-src/irb-1.16.0/lib/irb/command/copy.rb, line 68 def clipboard_available? !!clipboard_program end
Source
# File bundled-src/irb-1.16.0/lib/irb/command/copy.rb, line 54 def clipboard_program @clipboard_program ||= if IRB.conf[:COPY_COMMAND] IRB.conf[:COPY_COMMAND] elsif executable?("pbcopy") "pbcopy" elsif executable?("xclip") "xclip -selection clipboard" end end
Source
# File bundled-src/irb-1.16.0/lib/irb/command/copy.rb, line 41 def copy_to_clipboard(text) IO.popen(clipboard_program, 'w') do |io| io.write(text) end raise IOError.new("Copying to clipboard failed") unless $? == 0 puts "Copied to system clipboard" rescue Errno::ENOENT => e warn e.message warn "Is IRB.conf[:COPY_COMMAND] set to a bad value?" end
Source
# File bundled-src/irb-1.16.0/lib/irb/command/copy.rb, line 64 def executable?(command) system("which #{command} > /dev/null 2>&1") end