Class: Datagrid::Scaffold

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/datagrid/scaffold.rb

Instance Method Summary collapse

Instance Method Details

#create_scaffoldObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/datagrid/scaffold.rb', line 6

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

#grid_class_nameObject



25
26
27
# File 'lib/datagrid/scaffold.rb', line 25

def grid_class_name
  file_name.camelize.pluralize + "Grid"
end

#grid_controller_nameObject



29
30
31
# File 'lib/datagrid/scaffold.rb', line 29

def grid_controller_name
  grid_controller_short_name.camelize + "Controller"
end

#grid_controller_short_nameObject



33
34
35
# File 'lib/datagrid/scaffold.rb', line 33

def grid_controller_short_name
  file_name.underscore.pluralize
end

#grid_ivar_nameObject



41
42
43
# File 'lib/datagrid/scaffold.rb', line 41

def grid_ivar_name
  grid_class_name.underscore
end

#grid_model_nameObject



37
38
39
# File 'lib/datagrid/scaffold.rb', line 37

def grid_model_name
  file_name.camelize.singularize
end

#grid_route_nameObject



66
67
68
# File 'lib/datagrid/scaffold.rb', line 66

def grid_route_name
  grid_controller_short_name + "_path"
end

#paginate_codeObject



45
46
47
48
49
50
51
52
53
# File 'lib/datagrid/scaffold.rb', line 45

def paginate_code
  if defined?(Kaminari)
    "page(params[:page])"
  elsif defined?(WillPaginate)
    "paginate(:page => params[:page])"
  else
    "paginate_somehow"
  end
end

#pagination_helper_codeObject



55
56
57
58
59
60
61
62
63
64
# File 'lib/datagrid/scaffold.rb', line 55

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

end