In my gemfile I have this:
gem "authlogic", git: "git://github.com/odorcicd/authlogic.git", branch: "rails3"
How do I install that as a gem so I can test it?
You don't need to build the gem locally. In your gemfile you can specify a github source with a ref, branch or tag.
gem 'rails', git: 'git://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'git://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'git://github.com/rails/rails.git', tag: 'v2.3.5'
Then you run bundle install
or the short form is just bundle
.
Read more about it here: http://bundler.io/man/gemfile.5.html#GIT
Update: There's a github source identifier.
gem 'country_select', github: 'stefanpenner/country_select'
However, they warn against using it: NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.
After Bundler 2.0, you can get around the above issue with this statement near the top of the Gemfile:
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
bundle install
command, RubyGems says its fetching the git repo, and its installed, but when I do gem list gemname
it doesn't show up in my locally installed gems.
bundle install
to install as though it were global, or for all rubygems. however, its doing it per project, or sometimes per user. github.com/bundler/bundler/issues/3070#issuecomment-46361014
github:
identifier gives the transmits data without encryption
warning that I'm looking to avoid. Converting to a git:
identifier with https
might not be enough, as I also have a branch to specify.
NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.
- per the link you gave
Commented
Jan 22, 2018 at 22:00
Clone the Git repository.
$ git clone git://github.com/odorcicd/authlogic.git
Change to the new directory.
cd authlogic
Checkout branch
$ git checkout -b rails3 remotes/origin/rails3
Build the gem.
$ rake build gem
Install the gem.
$ gem install pkg/gemname-1.23.gem
gem 'rails', :github => 'rails', :branch => '5.0-stable'
- link: bundler.io/v1.3/git.html
gem build <gem-name>.gemspec
worked. I didn't have rake
listed in the Gemfile. So rake build gem
threw rake is not part of the bundle. add it to gemfile
Commented
Dec 16, 2016 at 11:14
I have to modify @janic_'s answer to make it work. Hope it will help other ruby noobs like myself.
Clone the Git repository.
$ git clone git://github.com/odorcicd/authlogic.git
Change to the new directory.
$ cd authlogic
Checkout branch
$ git checkout -b rails3 remotes/origin/rails3
Install bundles
$ bundle install
Build the gem.
$ rake build
Install the gem.
$ gem install pkg/gemname-1.23.gem
To update @Archonic answer, you need to replace the git protocol per the https protocol
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
Therefore, you need to write:
gem 'rails', git: 'https://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'https://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'https://github.com/rails/rails.git', tag: 'v2.3.5'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
to solve the https issue.