Using Local Gems
Today I started working on adding some features to the discourse_api, but I needed to work on the gem locally and rebuild it to test my changes. Using a gem locally took me a lot longer than I wanted to spend today, so I thought I’d write up how to do it.
First of all I would delete the gem that you might have installed from ruby gems already:
gem uninstall discourse_api
Then clone a copy of the gem
git clone https://github.com/discourse/discourse_api.git
Create a project folder for you new app
mkdir app
Inside of our app
directory create a Gemfile
with the contents:
source 'https://rubygems.org'
gem 'discourse_api', :path => '/full/path/to/discourse_api'
As you can see we specified a :path
pointing to where the gem can be found locally. Now type:
bundle install
Once of the lines of output from the bundle install
command will be:
Using discourse_api 0.2.1 from source at /vagrant/discourse_api
This way you can tell it grabbed a local version of them gem and not one from rubygems.org.
Now create a file called app.rb
with the contents:
require "discourse_api"
client = DiscourseApi::Client.new("https://meta.discourse.org")
puts client.user('oblakeerickson')
Now to run it you need to type bundle exec ruby app.rb
instead of just ruby app.rb
:
bundle exec ruby app.rb
Hopefully remembering to specify a :path
and to use bundle exec
will make using a gem locally much easier for you.