D
danielbuus
Hey
I'm trying to extend a method for creating a site map for a Ruby on
Rails app. This question, I believe, is pretty much just Ruby though,
that's why I'm asking here.
Basically, what it does ATM is find all classes that end in
'_controller.rb' and require them,
require 'find'
# Require all controllers
Find.find(File.join(RAILS_ROOT, "app/controllers")) { |path|
require_dependency path if path =~ /_controller\.rb$/ }
Okay. So I have two issues, and therefore two questions for this:
a) The "app/controllers" path does not just contain files, it also
contains directories, each of which present a module, like "Manage::"
for the backend, and "Store::" for the frontend. Inside are class
files that share names, e.g. 'Store::Items' and 'Manage::Items'. Only
difference is the module they belong to.
b) In the backend classes, I include a module, 'include Backend::Crud'
which defines some shared methods on the backend classes.
My question for a) is, how can I distinguish between the different
classes, given that they belong to different modules. How can I ask an
object what module it belongs to?
And, b), how can I look up these included methods? Right now, I can
only find public methods that are in the class files themselves, not
those defined in included modules...
I'm a bit confused with all this, it's pretty low-level for me So I
apologize if I'm asking very stupidly. If you have any ideas of how I
could do this, please let me know.
Thanks in advance,
Daniel
I'm trying to extend a method for creating a site map for a Ruby on
Rails app. This question, I believe, is pretty much just Ruby though,
that's why I'm asking here.
Basically, what it does ATM is find all classes that end in
'_controller.rb' and require them,
require 'find'
# Require all controllers
Find.find(File.join(RAILS_ROOT, "app/controllers")) { |path|
require_dependency path if path =~ /_controller\.rb$/ }
Okay. So I have two issues, and therefore two questions for this:
a) The "app/controllers" path does not just contain files, it also
contains directories, each of which present a module, like "Manage::"
for the backend, and "Store::" for the frontend. Inside are class
files that share names, e.g. 'Store::Items' and 'Manage::Items'. Only
difference is the module they belong to.
b) In the backend classes, I include a module, 'include Backend::Crud'
which defines some shared methods on the backend classes.
My question for a) is, how can I distinguish between the different
classes, given that they belong to different modules. How can I ask an
object what module it belongs to?
And, b), how can I look up these included methods? Right now, I can
only find public methods that are in the class files themselves, not
those defined in included modules...
I'm a bit confused with all this, it's pretty low-level for me So I
apologize if I'm asking very stupidly. If you have any ideas of how I
could do this, please let me know.
Thanks in advance,
Daniel