/usr/lib/ruby/vendor_ruby/merb-core/tasks/audit.rake is in ruby-merb-core 1.1.3+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | namespace :audit do
desc "Print out the named and anonymous routes"
task :routes => :merb_env do
seen = []
unless Merb::Router.named_routes.empty?
puts "Named Routes"
Merb::Router.named_routes.sort_by {|k,v| k}.each do |name,route|
puts " #{name}: #{route}"
seen << route
end
end
puts "Anonymous Routes"
(Merb::Router.routes - seen).each do |route|
puts " #{route}"
end
nil
end
desc "Print out all controllers"
task :controllers => :merb_env do
puts "\nControllers:\n\n"
abstract_controller_classes.each do |klass|
if klass.respond_to?(:subclasses_list)
puts "#{klass} < #{klass.superclass}"
subklasses = klass.subclasses_list.sort.map { |x| Object.full_const_get(x) }
unless subklasses.empty?
subklasses.each { |subklass| puts "- #{subklass}" }
else
puts "~ no subclasses"
end
puts
end
end
end
desc "Print out controllers and their actions (use CONTROLLER=Foo,Bar to be selective)"
task :actions => :merb_env do
puts "\nControllers and their actions:\n\n"
filter_controllers = ENV['CONTROLLER'] ? ENV['CONTROLLER'].split(',') : nil
abstract_controllers = abstract_controller_classes
classes = Merb::AbstractController.subclasses_list.sort.map { |x| Object.full_const_get(x) }
classes = classes.select { |k| k.name.in?(filter_controllers) } if filter_controllers
classes.each do |subklass|
next if subklass.in?(abstract_controllers) || !subklass.respond_to?(:callable_actions)
puts "#{subklass} < #{subklass.superclass}"
unless subklass.callable_actions.empty?
subklass.callable_actions.sort.each do |action, null|
if subklass.respond_to?(:action_argument_list)
arguments, defaults = subklass.action_argument_list[action]
args = arguments.map { |name, value| value ? "#{name} = #{value.inspect}" : name.to_s }.join(', ')
puts args.empty? ? "- #{action}" : "- #{action}(#{args})"
else
puts "- #{action}"
end
end
else
puts "~ no callable actions"
end
puts
end
end
def abstract_controller_classes
ObjectSpace.classes.select { |x| x.superclass == Merb::AbstractController }.sort_by { |x| x.name }
end
end
|