Hi Colin,

On Mon, Sep 28, 2015 at 11:00 PM Colin Law <clan...@gmail.com> wrote:

> I am developing a rails gem.  It uses the gon gem so in the gemspec
> file I have included
>
> spec.add_dependency 'gon'
>
> Then in the Gemfile for the application using my gem I have put
>
> gem 'my_gem', :path => '/path/to/dir/containing/my_gem'
>
> When I run bundle install I see that it includes my gem and also the
> gon gem as expected.
> From a view helper in the app I am calling helper method in a module
> in my gem's lib folder, and in there I have code such as
> gon.variable = ...
> and that code throws an error
> ActionView::Template::Error (undefined method `gon' for
> #<PlotValuesController:0x000000067bbc30>)
> where PlotValuesController is the controller in the app.  If I
> explicitly include gon in the Gemfile for the app then all works as
> correctly.
>
> Any suggestions as to why I have to explicitly include gon in the
> application's Gemfile, when it is included anyway via the dependency
> in my gem?
>

If I recall correctly, your gem is a Rails engine. It's a bit late and I
might be wrong, but a gem doesn't auto require other gems.

So to fix it, you need to require 'gon' in your gem (probably in your
lib/your_gem_name.rb file).

A good example is Devise:
https://github.com/plataformatec/devise/blob/master/lib/devise.rb. They do
also a lot of stuff in between, but you can see the that ir requires the
ORM, and Warden and other dependencies.

Hope it works,
// Marco


> Gemfile.lock with and without gon included explicitly can be seen at
> http://pastebin.com/vzvNgg3K
>
> Colin
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-talk+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLuh7_ni44oG%3DTu5yVpAd4B16tzFg%2BEY6ewXcKJ2XPWQXQ%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CACMkcE5%2BSgQgKA3pCTOieY75-Cw6f__k2wm%2BcWtdtnBhVBuMLA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to