Sha256: 60b989abc81b51f3f758952e9b546992e68cdf4829b4fb153d3820ada35e7587

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 KB

Contents

require "rails/generators"

class Datagrid::Scaffold < Rails::Generators::NamedBase
  source_root File.expand_path(__FILE__ + "/../../../templates")

  def create_scaffold
    template "grid.rb.erb", "app/grids/#{grid_class_name.underscore}.rb"
    template "controller.rb.erb", "app/controllers/#{grid_controller_name.underscore}.rb"
    template "index.html.erb", "app/views/#{grid_controller_short_name}/index.html.erb"
    route("resources :#{grid_controller_short_name}")
    in_root do
      {
        "css" => " *= require datagrid",
        "css.sass" => " *= require datagrid",
        "css.scss" => " *= require datagrid",
      }.each do |extension, string|
        file = "app/assets/stylesheets/application.#{extension}"
        if File.exists?(Rails.root.join(file))
          inject_into_file file, string + "\n", {:before => %r{.*require_self}} # before all
        end
      end
    end
  end

  def grid_class_name
    file_name.camelize.pluralize + "Grid"
  end
  
  def grid_controller_name
    grid_controller_short_name.camelize + "Controller"
  end

  def grid_controller_short_name
    file_name.underscore.pluralize
  end

  def grid_model_name
    file_name.camelize.singularize
  end

  def grid_ivar_name
    grid_class_name.underscore
  end

  def paginate_code
    if defined?(::Kaminari) || defined?(::WillPaginate)
      "page(params[:page])"
    else
      "paginate_somehow"
    end
  end

  def pagination_helper_code
    if defined?(::Kaminari)
      "paginate(@grid.assets)"
    elsif defined?(::WillPaginate)
      "will_paginate(@grid.assets)"
    else
      "some_pagination_helper(@grid.assets)"
    end

  end

  def grid_route_name
    grid_controller_short_name + "_path"
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
datagrid-1.3.1 lib/datagrid/scaffold.rb
datagrid-1.3.0 lib/datagrid/scaffold.rb
datagrid-1.2.3 lib/datagrid/scaffold.rb