class Maskara::Generator
Public Class Methods
run()
click to toggle source
# File lib/maskara/generator.rb, line 4 def run fail("#{data_file} already exists.") if File.exists?(data_file) # In development Rails doesn't load controllers until they're referenced eager_load_controllers write_example_data_file end
Private Class Methods
action_data(controller)
click to toggle source
# File lib/maskara/generator.rb, line 42 def action_data(controller) { 'actions' => Hash[ action_list(controller) ] } end
action_list(controller)
click to toggle source
# File lib/maskara/generator.rb, line 46 def action_list(controller) throw :empty_controller if controller.action_methods.empty? controller.action_methods.to_a.collect{ |action| [ action, {} ] } end
clean_controller_data()
click to toggle source
# File lib/maskara/generator.rb, line 26 def clean_controller_data { 'controllers' => dump_controllers } end
controller_list()
click to toggle source
# File lib/maskara/generator.rb, line 34 def controller_list ActionController::Base.descendants.collect do |controller| catch(:empty_controller) do [ controller.controller_path, action_data(controller) ] end end.compact end
data_file()
click to toggle source
# File lib/maskara/generator.rb, line 14 def data_file Maskara.configuration.data_file end
dump_controllers()
click to toggle source
# File lib/maskara/generator.rb, line 30 def dump_controllers Hash[ controller_list ] end
eager_load_controllers()
click to toggle source
# File lib/maskara/generator.rb, line 52 def eager_load_controllers Dir.glob(Rails.root.join "app/controllers/**/*_controller.rb").each do |file| require_dependency file end end
write_example_data_file()
click to toggle source
# File lib/maskara/generator.rb, line 18 def write_example_data_file FileUtils.mkdir_p(Maskara.configuration.data_path) File.open(data_file, 'w') do |file| YAML.dump(clean_controller_data, file) end end