我有一个模块,模块下有一些文件
module Man
有五个名为
的文件module man
module head
def a
end
end
end
module man
module hand
def a
end
end
end
我需要访问模块'man'下的子模块列表,我还需要访问每个子模块中的方法列表。
我试过这个
array_notification_classes = Dir.entries("app/models/notifications").select {|f| !File.directory? f}
但它返回了一个子字符串列表,它是一个字符串。
array_notification_classes = ["head.rb", "hand.rb"]
从现在开始如何从每个子模块中获取方法名称列表?
答案 0 :(得分:1)
拥有一组文件名,例如array_notification_classes = [“head.rb”,“hand.rb”]
array_notification_classes.each do |file_name|
require file_name
include file_name.split(".").first.classify.constantize
end
或上课:
class Notification
end
array_notification_classes.each do |file_name|
require file_name
Notification.class_eval do
include file_name.split(".").first.classify.constantize
end
end
答案 1 :(得分:0)
My array_notification_classes = ["head.rb", "hand.rb"]
array_notification_classes.each do |notification_class|
notification_class = "Notifications::#{notification_class[0..-4].classify}".constantize
notification_class_methods = notification_class.instance_methods
end
这返回了Notifications :: Head,notifications :: Hand
中的所有实例方法