module Pry::VTermAliases
Constants
- VERSION
Public Class Methods
aliases()
click to toggle source
# File lib/pry-vterm_aliases.rb, line 29 def aliases @aliases ||= if shell.nil? || shell.empty? then {} else find_aliases end end
create_alias(als, desc = nil)
click to toggle source
# File lib/pry-vterm_aliases.rb, line 16 def create_alias(als, desc = nil) Pry::Commands.create_command(cmd_regexp(als), listing: ".#{als}") do description "alias to: #{Pry::Helpers::Text.bold(desc)}." if desc group "Terminal Aliases" def process(cmd, extra) Pry::VTermAliases.run_alias( cmd, extra, output ) end end end
create_aliases()
click to toggle source
# File lib/pry-vterm_aliases.rb, line 8 def create_aliases aliases.each do |a, c| create_alias( a, c ) end end
process(cmd, extra)
click to toggle source
# File lib/pry-vterm_aliases.rb, line 21 def process(cmd, extra) Pry::VTermAliases.run_alias( cmd, extra, output ) end
run_alias(cmd, extra, output)
click to toggle source
# File lib/pry-vterm_aliases.rb, line 40 def run_alias(cmd, extra, output) raise ArgumentError, "unknown alias" unless (cmd = aliases[cmd]) output.puts(`#{cmd}#{" " + extra if extra}`) $?.success? end
shell()
click to toggle source
# File lib/pry-vterm_aliases.rb, line 36 def shell @shell ||= ENV["SHELL"].split("/").last end
Private Class Methods
cmd_regexp(str)
click to toggle source
# File lib/pry-vterm_aliases.rb, line 52 def cmd_regexp(str) /\A\.(?:(#{Regexp.escape(str)})(?:\Z|\s+(.*)))/ end
find_aliases()
click to toggle source
# File lib/pry-vterm_aliases.rb, line 57 def find_aliases `#{shell} -ic 'alias'`.split(/\n/).inject({}) do |h, a| if a =~ /\Aalias\s+/ a = a.sub(/\Aalias\s/, "").split("=") unless a.first =~ /\s/ strip_wrapping_quotes(a.shift).tap do |k| h.update( k => Shellwords.shellwords(a.join("=")).join ) end end end h end end
strip_wrapping_quotes(str)
click to toggle source
# File lib/pry-vterm_aliases.rb, line 47 def strip_wrapping_quotes(str) str =~ /\A'(.*)'\Z/ ? $1 : str end