class ExpressAdmin::Generators::ScaffoldGenerator

Attributes

resource_class[R]
view_path[R]

Public Instance Methods

add_menu_item() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 41
      def add_menu_item
        path = if namespaced?
          "#{controller_file_name}_path"
        else
          "admin_#{controller_file_name}_path"
        end
menu_entry = %Q(
  -
    title: '#{controller_file_name.titleize}'
    path: '#{path}'
)
        menu_path = Rails.root ? "#{Rails.root}/config/menu.yml": "config/menu.yml"
        if File.exists?(menu_path)
          inject_into_file menu_path, menu_entry, after: 'items:'
        end
      end
add_route() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 27
      def add_route
        route_path = Rails.root ? "#{Rails.root}/config/routes.rb": "config/routes.rb"
        if open(route_path).grep("scope '#{project_path}'").any?
          inject_into_file 'config/routes.rb', "        resources :#{controller_file_name}\n",
            after: "scope '#{project_path}' do\n"
        else
          admin_route = <<-EOD
  resources :#{controller_file_name}, except: [:edit]
EOD
          inject_into_file 'config/routes.rb', admin_route,
            after: "#{namespaced?}::Engine.routes.draw do\n"
        end
      end
copy_view_files() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 16
def copy_view_files
  available_views.each do |view|
    template "#{view}.html.et.erb", File.join(admin_view_path, "#{view}.html.et")
  end
end
create_root_folder() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 12
def create_root_folder
  empty_directory admin_view_path
end
generate_controller() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 22
def generate_controller
  controller_file_path = File.join(["app/controllers", project_name, "#{controller_file_name}_controller.rb"].compact)
  template "controller/controller.rb", controller_file_path
end

Protected Instance Methods

admin_view_path() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 90
def admin_view_path
  path_parts = ["app/views", project_name, controller_file_name]
  File.join path_parts.compact
end
available_actions() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 64
def available_actions
  %w(index show update destroy)
end
available_views() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 60
def available_views
  %w(index)
end
handler() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 68
def handler
  :et
end
model_class_name() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 84
def model_class_name
  class_path_parts = class_name.split("::")
  class_path_parts.unshift namespace.to_s if namespaced?
  class_path_parts.join("::")
end
model_path() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 95
def model_path
  if Rails.application
    class_name.underscore
  else
    # drop the module name for the engine as the generators
    # we invoke will automatically add it back again
    class_name.split("::").slice(1..-1).join("::").underscore
  end
end
module_name() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 80
def module_name
  controller_class_path.last if controller_class_path.size.eql?(2)
end
project_name() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 76
def project_name
  namespaced_path rescue nil
end
project_path() click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 72
def project_path
  project_name || Rails.application.class.parent_name
end

Private Instance Methods

destroy(what, *args) click to toggle source
# File lib/generators/express_admin/scaffold/scaffold_generator.rb, line 107
def destroy(what, *args)
  log :destroy, what
  argument = args.flat_map(&:to_s).join(" ")
  # in_root { run_ruby_script("bin/rails destroy #{what} #{argument}", verbose: true) }
  system("bin/rails destroy #{what} #{argument}")
end