4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'app/models/crud/menus/development_menu.rb', line 4
def initialize
root_dir = Crud::Engine.root
Dir.glob( File.join(root_dir, 'app', 'controllers', '**', '*_controller.rb') ).sort.each do |controller_file|
controller_prefix = File.dirname( controller_file.gsub(/^.*controllers/, "").gsub(/^[\\\/]/, "") )
controller_prefix = (controller_prefix.length == 1) ? '' : controller_prefix + '/'
controller = File.basename(controller_file, ".rb")
controller_object = controller.camelize
model_prefix = controller_prefix.gsub(/^.*admin/,"").gsub(/^[\\\/]/, "")
model = controller.gsub("_controller","").singularize
model_object = model.camelize
if File.exist?( File.join(root_dir, 'app', 'models', model_prefix, model + '.rb') )
next if ['report'].include?(model)
link_text = model.to_s.humanize.pluralize
controller_for_url = "#{controller_prefix}#{controller.gsub("_controller","")}"
action_for_url = 'index'
section = self
controller_prefix.split(File::SEPARATOR).each do |sub_section|
if section[sub_section].nil?
section[sub_section] = Hash.new
end
section = section[sub_section]
end
section = Hash.new if section.nil?
section[controller] = Hash.new if section[controller].nil?
section[controller]['name'] = link_text
section[controller]['controller'] = controller_for_url
section[controller]['action'] = action_for_url
end
end
end
|