Undefined method in my plugin

I’ve got a plugin that is really a collection of plugins, and I want
one plugin to see methods from another.
I’ve tried to simplify what I’ve done and what I’m seeing

So my (simplified) file structure looks like this:
acts_as_foobar/

  • init.rb
  • lib/
    acts_as_foobar.rb
    foo.rb
    bar.rb

init.rb:
require ‘acts_as_foobar.rb’

acts_as_foobar.rb:
require ‘foo’
require ‘bar’

foo.rb:
module Foo
def self.included(base)
base.extend(ClassMethods)
end

  module ClassMethods
    def acts_as_foo
      class_eval do
        extend Foo::SingletonMethods
      end
    end
  end

  module SingletonMethods
    def static_foo_method
      ...do something foo-ish here...
    end
  end
end

ActiveRecord::Base.send(:include, Foo)

bar.rb:
module Bar
def self.included(base)
base.extend(ClassMethods)
end

  module ClassMethods
    def acts_as_bar
      include Bar::InstanceMethods
    end
  end

  module InstanceMethods
    def instance_bar_method
      X.static_foo_method
    end
  end
end

ActiveRecord::Base.send(:include, Bar)

Now, I have two model classes, X and Y
X.rb
class X < ActiveRecord::Base
acts_as_foo
end

Y.rb
class Y < ActiveRecord::Base
acts_as_bar
end

Now if I try this:
Y.find(1).instance_bar_method

I’ll get an error like this:
‘undefined method `static_foo_method’ for Foo:Module
(NoMethodError)

But I can call
X.static_foo_method
and get the results I expect.

(I know this use of a plugin may not be optimal)

Any clues as to how I can get this work?

Thanks,
-kevin