Created Gem. But Class / Gem is not available after install - ruby-on-rails

I just created this GEM AX-Track API Wrapper (following the most recent tutorials from GoRails), but after installing it into a new rails project, I don't have the functionality available. Somehow the main class is not loaded!
What did I do
Create a new rails project
add to gemfile: gem 'ax-track-ruby-client'
run bundle install
spin up console and run AxTrack::Client
The error I get
NameError (uninitialized constant AxTrack)
What do I need to change in this gem to make the functionality available.

The name of your gem is ax-track-ruby-client (seen from gemspec file). You should use that when installing the gem (or update the name listed in the gemspec file).

Related

Add rb-grib gem to Rails application

I'm new to Rails and I got a problem.
My new project requires rb-grib gem (link to ruby gems: https://rubygems.org/gems/rb-grib/versions/0.2.2). This gem requires GRIB API library, I installed it using brew install grib-api. It works in irb and .rb scripts. I need to use it in my Rails app, but I get an error LoadError: cannot load such file -- numru/grib. What I need to do to make it work and deploy to Heroku in future?
You need to add
require 'numru/grib'

I'm developing a Ruby gem, how can I try it out locally with my Rails app?

I am developing a gem meant to be used with Rails projects and want to try it out locally with another Rails app of mine.
I built the gem with bundle exec rake release which put a .gem file in the /pkg directory.
Then, in my Rails app, I added the following to my gemfile
gem 'mygem', '0.1.1', path: '/Users/me/projects/mygem/ruby/pkg'
I then ran bundle install which said it installed the gem. When I do this, it removes the gem from the path. IDK where it went.
When I start the Rails app, it's like the gem isn't included at all.
Interestingly, if I add a version that doesn't even exist, it still says bundle install works fine. (Example: gem 'mygem', '0.1.2345', path: '/Users/me/projects/mygem/ruby/pkg')
What am I supposed to do to try out my Gem locally with a Rails app?
This question is different from How can I specify a local gem in my Gemfile? because I explicitly tell bundle in my Gemfile to use the local gem, with the path given, and it still doesn't work. When I run bundle install, it says
Using mygem 0.1.1 from source at /Users/me/projects/mygem/pkg
So you'd think it works right, but it still doesn't.
Interestly, if I try it with a version number that doesn't exist, like mygem 1.2.3, it still runs bundle install successfully, which is really weird and seems like a bug:
Using mygem 1.2.3 (was 0.1.1) from source at /Users/me/projects/mygem/pkg
I prefer to use the following when working on a local gem side-by-side with a Rails project:
gem 'foo',
:git => '/path/to/local/git/repo',
:branch => 'my-fancy-feature-branch'

Trying to install survey Gem

I am following these guides:-
http://www.runtime-revolution.com/runtime/blog/introducing-survey
When I try:-
gem "survey", "~> 0.1"
as it suggests I get:-
ERROR: While executing gem ... <RuntimeError>
Unknown command survey,
When I try:-
gem install survey
It says that everything has installed fine but when I try:-
Rails generate survey plain namespace:contests
or
rails generate survey:install
I get :-
Could not find generator
Also, looking in my Gemfile survey is not in there?
gem "survey", "~> 0.1"
Is not a command. This is the line you need to manually add to your Rails Gemfile to list the gem as dependency in your Rails application, as also explained in the README you linked.
After you add it, run
$ bundle
and the gem will be installed in your Rails application.
As a side note, you may also benefit from reading some introductory book about using Ruby and Rails.

Rails and outside libraries

I am trying to use this gem in my rails application, but when I add it to my gem file and try to use it I get an error saying that it did not found the methods required (I am using it inside a controller). Also require 'bn4r' does not help as rails tells me that it cannot load such a file, which is odd. I can access the library from the development console with no problems any idea as to why this happens?
After adding the gem to the Gemfile:
gem 'bn4r'
install it:
$ bundle install
Restart the server and use it like this:
BayesNet.new

Rails 3 gem installed with bundler, still get NoMethodError

I'm trying to install the calendar_helper gem. I included the gem in my Gemfile:
gem 'calendar_helper'
I ran bundle install and loaded fine.
Using calendar_helper (0.2.4)
0.2.4 is the newest version in GitHub, so that looks good. I'm running on Pow so I don't need to restart the server (though I tried that anyway). Adding a call to the method calendar throws an error:
undefined method `calendar'
I feel like something could be wrong with my Rails installation or something. Any ideas?
It doesn't look like version 0.2.4 is up-to-date with what's on github; it's missing the subclass of Rails::Engine necessary to load the helper. The key line on the edge source is here: https://github.com/topfunky/calendar_helper/blob/master/lib/calendar_helper.rb#L231.
You may be able to fix this by installing the gem from edge:
gem 'calendar_helper', :git => 'git://github.com/topfunky/calendar_helper.git'
Edited:
If that still isn't working, you can also try this in your ApplicationHelper:
require 'calendar_helper'
module ApplicationHelper
include CalendarHelper
end

Resources