charlotte-ruby/social_engine — Issue #3: Is it possible to safely reopen models within social_engine
Author: hraynaud
Created: 2012-02-11 01:46:41+00:00
State: open

This seems like standard ruby stuff but for something reason I'm getting mixed results when I try to "monkey patch" Comment class. What's weird is that it works perfectly fine for the Friending class. Examples:

```Ruby
require 'friending'
class Friending < ActiveRecord::Base
def follow
friendor.follow(friendee)
end
end
````

The above works without a hitch. However if I try to reopen the Comment model for example:

````Ruby
require 'comment'
class Comment < ActiveRecord::Base
include SearchResult
end
````

I get an endless array of errors starting ith undefined method is_votable. I suspect this has something to do with the initialization and the fact that the commentable, votable, etc. stuff is added via the AR extension initializer and is called during

````Ruby
class Engine < Rails::Engine
initializer 'social_engine.ar_extensions', :before=>"action_controller.deprecated_routes" do |app|
ActiveRecord::Base.extend SocialEngine::Voteable
ActiveRecord::Base.extend SocialEngine::Commentable
ActiveRecord::Base.extend SocialEngine::Rateable
ActiveRecord::Base.extend SocialEngine::Favoriteable
ActiveRecord::Base.extend SocialEngine::Reputatable
ActiveRecord::Base.extend SocialEngine::Friendable
ActiveRecord::Base.extend SocialEngine::Sociable
ActiveRecord::Base.extend SocialEngine::SocialUser
end
````

Is there something special I need to do to reopen this class given this init logic

Thanks