Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require "readline"
- class Alias
- def initialize
- @aliases = {}
- end
- def add nom, proc
- @aliases[nom] = proc
- end
- def cmd_exist? cmd
- @aliases.has_key? cmd
- end
- def call cmd, args=nil
- @aliases[cmd].call args
- end
- def show_aliases
- @aliases.each_key do |key|
- puts key
- end
- end
- end
- $alias = Alias.new
- alias_p = Proc.new do |str|
- str[/^(\S+) */]
- name = $1
- cmd = Proc.new do eval $' end
- $alias.add name, cmd
- end
- $alias.add "alias", alias_p
- while ( line = Readline.readline '> ' )
- line[/^(\S+) */]
- cmd = $1
- args = $'
- if $alias.cmd_exist? cmd
- $alias.call cmd, args
- elsif cmd == 'help'
- $alias.show_aliases
- else
- puts "unknown command : #{cmd}"
- end
- end
Add Comment
Please, Sign In to add comment