Getting the module name with ObjectSpace

Hey :slight_smile:

I’m trying to create a method for making a sitemap dynamically. It
works great for flat sites where you simply have your controllers in
the app/controllers directory. In this case, I can extract the
controller names like,

@controllers
ObjectSpace.subclasses_of(ActionController::Base).each do |obj|
@controllers["#{obj.controller_name}"] = obj
end

However, now I’ve divided the site into modules, that is, I have for
instance both Store::ItemsController and Manage::ItemsController,
which reside in app/controllers/store and app/controllers/manage
respectively.

This causes my code above to basically (as it seems) discard the
“duplicate” controllers when traversing the classes. What I’d like to
do is mimic the hierarchy in my module::controller::action structure,
but I don’t know how to do that…

I’d like to have a three dimensional array like, [module_name]
[controller_name][action_name]

Help?

Thanks :slight_smile:

Daniel