Commandline utilities hebben vaak korte namen; ls
, rm
, grep
, svn
etc. De subversion client svn
heeft (sub-)commando’s welke allemaal afkortingen hebben; svn status
kan je schrijven als svn st
e.d. Toen ik een ruby wrapper class had geschreven om het svn
commando, miste ik metteen de svn st
variant. Natuurlijk kan je gewoon wat aliases aanmaken voor commando’s maar ik zag een kans voor een experimentje in een verloren uurtje.
Bladerend door de appendix van pickaxe 2 ben ik ooit tegen abbrev aangelopen. Gegeven een lijst termen geeft deze een hash van mogelijke afkortingen terug:
require 'abbrev'
require 'pp'
pp %w{bla die foo bar}.abbrev
levert:
{"die"=>"die",
"bla"=>"bla",
"d"=>"die",
"di"=>"die",
"foo"=>"foo",
"f"=>"foo",
"bar"=>"bar",
"ba"=>"bar",
"fo"=>"foo",
"bl"=>"bla"}
Mooi om automagische afkortingen te leveren. We kunnen aan de slag!
Lees verder →