I want to dynamically include all modules within a certain folder into this other module. My code is as follows:
module Extensions
module ProductExtension
def add_included_extensions
extensions = Pathname.glob("lib/extensions/merchant/*.rb")
.map(&:basename)
.collect{|x|
x.to_s.gsub(".rb", "")
.titleize.gsub(" ","")
}
extensions.each do |merchant|
include "Extensions::MerchantExtensions::#{merchant}".constantize
end
end
def add_items
add_included_extensions
Merchant.all.each do |merchant|
send("add_#{merchant.name.downcase}_items")
end
end
end
end
However it doesn't seem to be actually including the files because when I call the send method, it says the method it's calling doesn't exist. Any idea what I could be doing wrong?
titleize
insteadcamelize
– MikDiet May 10 '13 at 21:43