Sha256: b0cf3a4ed5c0713adc2ca83afeed0bebe1da8dcc00c285398d92bffd7614eb44

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

class TrackmanControllerGenerator < ::Rails::Generator::Base
  def initialize runtime_args, runtime_options = {}
    self.controller_name = options[:controller_name] || 'errors'
    super
  end

  attr_accessor :controller_name

  @@actions = ['not_found', 'error', 'maintenance', 'maintenance_error']
  @@routes = {'404' => 'not_found', '500' => 'error', '503' => 'maintenance', '503-error' => 'maintenance_error'}

  def manifest # this method is default entrance of generator
    puts route_doc false
    record do |m|
      m.template 'controller_layout.rb.erb', "app/controllers/#{controller_name}_controller.rb"
      create_views_for(:erb, m)
    end
  end

  protected
    def create_views_for(engine, m)
      view_folder = "app/views/#{controller_name}"
      layout = "view_layout.html.#{engine}"

      m.directory(view_folder)
      @@actions.each do |n|
        m.template layout, "#{view_folder}/#{n}.html.#{engine}"
      end
    end

    def route_doc show_as_comments = false
      char = show_as_comments ? '#' : ''
      camelized = controller_name.camelize
      
      doc = "\n#{char} Don't forget to add the routes in config/routes.rb\n#{char} ------\n"
      @@routes.each do |k, v|
        doc << "#{char} map.#{v} '#{camelized}/#{k}', :controller => '#{controller_name}', :action => :#{v}\n"        
      end
      doc << "#{char} ------\n\n"

      doc
    end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
trackman-0.6.12 rails_generators/trackman_controller/trackman_controller_generator.rb
trackman-0.6.11 rails_generators/trackman_controller/trackman_controller_generator.rb
trackman-0.6.10 rails_generators/trackman_controller/trackman_controller_generator.rb
trackman-0.6.9 rails_generators/trackman_controller/trackman_controller_generator.rb
trackman-0.6.8 rails_generators/trackman_controller/trackman_controller_generator.rb
trackman-0.6.7 rails_generators/trackman_controller/trackman_controller_generator.rb