Sha256: 0e967bb4cdd9993ba443712c5c4fbad149d051771d9f51679edc5b1c81f28b8a

Contents?: true

Size: 1.97 KB

Versions: 6

Compression:

Stored size: 1.97 KB

Contents

require 'rails/generators'

module UnknownAdmin
  module Generators
    class ControllerGenerator < ::Rails::Generators::NamedBase

      source_root File.expand_path("../templates", __FILE__)
      desc "This generator creates a slim 'inherited-resources' controller"
      class_option  :skip_routes, :type => :boolean, :default => false,:desc=>"Skip adding resource/namespace to route file"
      #argument :stylesheets_type, :type => :string, :default => 'less', :banner => '*less or static'

      def create_controller

        template "standard_controller.rb", "app/controllers/admin/#{file_name}_controller.rb"


      end

      def update_routes
        unless options.skip_routes
          line = "namespace :admin"
          
          unless File.read('config/routes.rb').match(/^\s*#{Regexp.escape(line)}/i)
            route_namespace "#{line} do  end"
          end
          route_into "resources :#{file_name}",:admin
        end
      end

      private
        def route_into(routing_code,namespace)
          log :route, routing_code
          line = "namespace :#{namespace.to_s} do"
          sentinel = /\s*#{Regexp.escape(line)}/mi

          in_root do
            inject_into_file 'config/routes.rb', "\n    #{routing_code}\n", { :after => sentinel, :verbose => false }
          end
        end
        def route_namespace(routing_code)
          log :route, routing_code
          sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/

          in_root do
            inject_into_file 'config/routes.rb', "\n  #{routing_code}\n", { :after => sentinel, :verbose => false }
          end
        end

        def file_name
          name.underscore.pluralize
        end
        def model_name
          name.singularize.underscore
        end
        def model
          name.singularize.camelize.constantize
        end
        def klass_name
          name.camelize.pluralize
        end

        def columns
          model.column_names.map{|c| ":#{c}"}
        end
    end
      
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
unknown_admin-0.1.5 lib/generators/unknown_admin/controller/controller_generator.rb
unknown_admin-0.1.4 lib/generators/unknown_admin/controller/controller_generator.rb
unknown_admin-0.1.3 lib/generators/unknown_admin/controller/controller_generator.rb
unknown_admin-0.1.2 lib/generators/unknown_admin/controller/controller_generator.rb
unknown_admin-0.1.1 lib/generators/unknown_admin/controller/controller_generator.rb
unknown_admin-0.1.0 lib/generators/unknown_admin/controller/controller_generator.rb