require 'rails/generators/erb/scaffold/scaffold_generator' require File.join(File.dirname(__FILE__), '../../leonardo') module Erb module Generators class LeoscaGenerator < ::Erb::Generators::ScaffoldGenerator include ::Leonardo::Leosca include ::Leonardo::Nested #puts 'erb:leosca' source_root File.expand_path('../templates', __FILE__) class_option :authorization, :type => :boolean, :default => true, :description => "Add code to manage authorization with cancan" class_option :remote, :type => :boolean, :default => true, :description => "Enable ajax. You can also do later set remote to true into index view." class_option :formtastic, :type => :boolean, :default => true, :description => "Create forms to manage with formtastic gem" class_option :under, :type => :string, :default => "", :banner => "brand/category", :desc => "To nest a resource under another(s)" class_option :leospace, :type => :string, :default => "", :banner => ":admin", :desc => "To nest a resource under namespace(s)" class_option :auth_class, :type => :boolean, :default => 'user', :desc => "Set the authentication class name" #override def copy_view_files available_views.each do |view| filenames = filenames_all_formats(view, source_paths) filenames.each do |filename| #Looking for custom filename into subfolder filename_source = "#{"formtastic/" if formtastic?}#{filename}" search_into_subfolder = nil source_paths.each do |path| if File.exists?(File.join(path,filename_source)) search_into_subfolder = true break end end filename_source = filename unless search_into_subfolder template filename_source, File.join("app/views", base_namespaces, controller_file_path, filename) end end end def update_layout_html file = "app/views/layouts/_#{CONFIG[:default_style]}.html.erb" if nested? inject_into_file file, :before => " " do <<-FILE.gsub(/^ /, '') #{"<% if can?(:read, #{class_name}) && controller.controller_path == '#{controller_name}' -%>" if authorization?}