Как модифицировать рубиновый камень - PullRequest
37 голосов
/ 01 апреля 2011

Как я могу изменить существующий файл * .gem?Я хочу изменить Rakefile в геме, чтобы он мог компилироваться в Windows.

Ответы [ 5 ]

47 голосов
/ 03 декабря 2013

Загрузите его исходный код в отдельную папку (возможно, из github). Затем измените свой Gemfile так, чтобы он указывал на источник напрямую, чтобы вы могли редактировать его и напрямую проверять изменения.

Например, предположим, что вы хотите отредактировать гем secure_headers и что вы клонировали его в ~ / workspace / secureheaders. Тогда вы можете использовать следующее в вашем Gemfile:

gem 'secure_headers', :path => "~/workspace/secureheaders"

Затем просто измените исходные файлы внутри дерева исходных текстов, и вы сможете увидеть, что ваши изменения применяются напрямую.

38 голосов
/ 01 апреля 2011

Вы можете gem unpack добавить его, затем модифицировать gemspec, если необходимо, и собрать его заново:

23 голосов
/ 22 апреля 2013

Более новые версии связки позволяют вам делать это с помощью следующей команды:

bundle open gem_to_edit

Это откроет код драгоценного камня в текстовом редакторе по умолчанию.

(Подсказка: если выв Mac OSX / Linux вы можете указать свой текстовый редактор по умолчанию, изменив переменную $ EDITOR. Допустим, вы находитесь на bash, вы можете просто открыть свой ~/.bash_profile и добавить: export EDITOR='subl -w', чтобы установить Sublime Text в качестве редактора по умолчанию

15 голосов
/ 02 апреля 2011

Возможно, более приемлемым и дружественным способом с открытым исходным кодом для этого было бы проверить, доступен ли источник драгоценного камня на чем-то вроде github.Затем создайте ветвь кода gem, внесите изменения и отправьте запрос на извлечение.Скорее всего, кто-то еще хочет эту функциональность, и вы будете объявлены за ваш вклад.

5 голосов
/ 11 апреля 2012

Если вам не хватает gemspec для драгоценного камня, извлеките его с помощью этой команды:

gem spec my_gem --ruby > my_gem.gemspec

Конечно, заменив my_gem на соответствующее имя драгоценного камня.Отредактируйте полученный файл, чтобы он соответствовал (в одном примере мне пришлось удалить строку, которая вызвала ошибку), и вы должны быть в порядке.

...