Scusa se questo è un duplicato, ho visto un paio di domande su bundler e git, ma non lo capisco.
Ho biforcato una gemma che è sul github - la mia forchetta è https://github.com/toastkid/contentapi-ruby
Nel mio Gemfile, ho cambiato la gemma per usare l'opzione: git, indicando la mia nuova forchetta:
gem "guardian-content", :git => "git://github.com/toastkid/contentapi-ruby.git"
Allora l'ho fatto
bundle update guardian-content
e ha detto
Using guardian-content (0.2.2) from git://github.com/toastkid/contentapi-ruby.git (at master)
Pensavo che ciò significasse che ora avrei installato il gioiello, ma non lo sono: non lo è gem list
e non posso richiedere la gemma in una console rubino.
Ho letto che github non fa gem hosting di nessunoDi Più. Non sono al 100% su cosa questo significhi realmente (gem hosting invece di ospitare il codice sorgente per la gemma?). Quindi, ho clonato la mia forchetta fino alla mia macchina e l'ho costruita lì, poi ho cambiato linea in Gemfile puntare alla cartella locale contenente il file gemspec:
gem "guardian-content", :path => "./gems/contentapi-ruby"
Allora l'ho fatto
bundle update guardian-content
di nuovo, e questa volta ha detto
Using guardian-content (0.2.2) from source at ./gems/contentapi-ruby
Ancora nessuna gemma per i guardiani gem list
, ancora non può richiederlo.
Qualcuno può dirmi dritto? Come posso usare il mio fork (ideale) o costruito localmente (se necessario), gem in bundle install? Ho intenzione di distribuire questo al mio server, quindi è necessario farlo funzionare in modo affidabile.
grazie, max
risposte:
3 per risposta № 1Usando gemme da git (o dal filesystem locale)con: path) in Bundler non li installa sul tuo GEM_HOME, quindi non sono disponibili per RubyGems nel solito modo, ma li rende disponibili a Bundler purché siano nel Gemfile.
Se vuoi includere la gemma in irb, assicurati che Gemfile e Gemfile.lock siano nella directory corrente e (in irb) fai questo:
require `bundler/setup"
require "guardian-content"
A seconda della versione di Ruby / RubyGems (e del tuo $ RUBYOPT) potrebbe essere necessario require "rubygems"
prima di te require "bundler/setup"