Bare *
используется, чтобы заставить вызывающего пользователя использовать именованные аргументы, поэтому вы не можете определить функцию с *
в качестве аргумента, если у вас нет следующих аргументов ключевого слова.
См. этот ответ или документации Python 3 для более подробной информации.
- rubygems является на самом деле тем же как-r ubygems.
Это не смешивает с Вашим путем поиска, насколько я понимаю, но я думаю, что это ничего не добавляет к Вашему-r пути поиска также. Я смог сделать что-то вроде этого:
ruby -rubygems -r /usr/lib/ruby/gems/myhelpfulclass-0.0.1/lib/MyHelpfulClass -e "puts MyHelpfulClass"
MyHelpfulClass.rb существует в каталоге lib, указанном выше.
Такой сосет, но это, по крайней мере, демонстрирует, что у Вас может быть несколько-r equire директивы.
Как немного менее ужасное обходное решение, можно добавить дополнительные объекты к рубиновому пути поиска библиотеки (двоеточие, разграниченное в *, отклоняют, точка с запятой, разграниченная в окнах).
export RUBYLIB=/usr/lib/ruby/gems/1.8/gems/myhelpfulclass-0.0.1/lib
ruby -rubygems -r MyHelpfulClass -e "puts MyHelpfulClass"
Если Вы не хотите смешивать с переменной среды, можно добавить, что что-то к загрузке соединяет себя каналом:
ruby -I /usr/lib/ruby/gems/1.8/gems/myhelpfulclass-0.0.1/lib \
-rubygems -r MyHelpfulClass -e "puts MyHelpfulClass"