Sha256: 57837101a9f1bd1b15ef930c15db7d93985c3504f8b957f2dbd1d24e961842e4
Contents?: true
Size: 1.98 KB
Versions: 3
Compression:
Stored size: 1.98 KB
Contents
require 'active_support/core_ext' module Jax module Generators module Controller class ControllerGenerator < Jax::Generators::PluggableCommand argument :controller_name attr_reader :actions, :action_name class_option :root, :default => false, :type => :boolean def self.source_root File.expand_path("templates", File.dirname(__FILE__)) end def initialize(args=[], options={}, config={}) super @actions = args[1..-1].collect { |c| c.underscore } @actions = ['index'] if @actions.empty? @controller_name = controller_name.underscore end def source template 'controller_source.js.tt', File.join("app/controllers", "#{file_name}_controller.js") end def helper template 'helper.js.tt', File.join("app/helpers", "#{file_name}_helper.js") end def tests template 'controller_test.js.tt', File.join('spec/javascripts/controllers', "#{file_name}_controller_spec.js") template 'helper_test.js.tt', File.join('spec/javascripts/helpers', "#{file_name}_helper_spec.js") end def views actions.each do |action| @action_name = action template 'view.js.tt', File.join("app/views", file_name, "#{action}.js") end end def routes actions.each do |action| insert_into_file "config/routes.rb", "\n map '#{controller_name}/#{action}'", :after => /\.routes\.map do$/ end end def root_route if options[:root] insert_into_file "config/routes.rb", " root '#{controller_name}'\n", :before => /^end\s*\Z/ end end protected def file_name controller_name.underscore end def class_name controller_name.camelize end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems