port library as a ruby gem