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