class Aginx::Generators::ControllerGenerator

Public Instance Methods

create_controller() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 18
def create_controller
  template 'controller.rb', File.join('app/controllers', class_path, "#{@model_table_name}_controller.rb")
end
create_route() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 22
      def create_route
        routes_code = <<-EOF
        resources :#{@model_table_name} do
          collection do
            delete 'multi_destroy'
          end
        end
                EOF

        # 兼容 agi_scaffold, 索引字符串前添加空格
        inject_into_file 'config/routes.rb', before: "        # Do not delete this line for agi_scaffold" do
          routes_code
        end
      end
init() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 14
def init
  prepare
end

Private Instance Methods

check_namespace() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 44
def check_namespace
raise 'Namespace is not specified!' if class_path.length == 0
end
prepare() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 39
def prepare
  check_namespace
  set_model
end
set_model() click to toggle source
# File lib/generators/aginx/controller/controller_generator.rb, line 48
def set_model
  @model_table_name = file_name.underscore.pluralize
  @model_name = file_name.camelize.singularize
  @model_columns = options[:columns]
  if @model_columns.length == 0 && !options[:skip_model]
    model = @model_name.constantize
    if model.respond_to? :columns
      @model_columns = model.columns.map{|column| "#{column.name}:#{column.type}"}
    else
      raise NameError
    end
  end
rescue NameError
  raise "Can't any table information about #{@model_name} model"
end