ApiAuth gem + ActiveResource

96 views Asked by At

I'm trying to get ApiAuth working with ActiveResource and having no luck. The documentation suggests this as the way to use the gem:

class Foo < ActiveResource::Base
  with_api_auth("foo", "bar")
end

This results in the following error:

NoMethodError: undefined method `with_api_auth' for Foo:Class

I know that the api_auth library is available because when I do

require 'api_auth' 

i get "false", which I believe means that the library/gem was already loaded.

Additionally, I picked out the module/class where with_api_auth is defined and don't get an error:

2.3.8 :004 > 
ApiAuth::Rails::ActiveResourceExtension::ActiveResourceApiAuth
=> ApiAuth::Rails::ActiveResourceExtension::ActiveResourceApiAuth
2.3.8 :005 >

I found a couple issues for this exact error on the api_auth github project, but neither had solutions that worked for me.

Anyone else see this error or know how to eliminate it?

1

There are 1 answers

1
AudioBubble On

So in the end it was an ordering of gems in my Gemfile that made the difference. It ended up being an ordering issue in my Gemfile. I found an issue (113) on the gem github issues list that said to make sure the order was right by doing:

gem 'activeresource'
gem 'api-auth'

Originally this hadn't worked and it ended up being because you no longer have to explicitly put activeresource in your Gemfile. So I moved gem 'api-auth' the last line in my Gemfile and everything worked.

I don't know for sure, but I think it has to do with how mixins are loaded on bundle install. "think" being the most important word in that statement.