prefab 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +43 -0
- data/.travis.yml +9 -0
- data/Gemfile +26 -0
- data/LICENSE +21 -0
- data/MIT-LICENSE +20 -0
- data/README.md +134 -0
- data/Rakefile +154 -0
- data/lib/generators/api/USAGE +8 -0
- data/lib/generators/api/api_generator.rb +11 -0
- data/lib/generators/api/templates/api.rb +8 -0
- data/lib/generators/api/templates/api_spec.rb +5 -0
- data/lib/generators/datatable/USAGE +8 -0
- data/lib/generators/datatable/datatable_generator.rb +12 -0
- data/lib/generators/datatable/templates/datatable.rb +55 -0
- data/lib/generators/datatable/templates/javascript.js.coffee +8 -0
- data/lib/generators/report/USAGE +8 -0
- data/lib/generators/report/report_generator.rb +12 -0
- data/lib/generators/report/templates/report.rb +54 -0
- data/lib/generators/report/templates/report_spec.rb +14 -0
- data/lib/generators/service/USAGE +8 -0
- data/lib/generators/service/service_generator.rb +11 -0
- data/lib/generators/service/templates/service.rb +4 -0
- data/lib/generators/service/templates/service_spec.rb +8 -0
- data/lib/prefab.rb +18 -0
- data/lib/prefab/install/install_generator.rb +43 -0
- data/lib/prefab/install/templates/assets/stylesheets/bootstrap-variables.less +829 -0
- data/lib/prefab/install/templates/assets/stylesheets/bootstrap-variables.scss +833 -0
- data/lib/prefab/install/templates/assets/stylesheets/starter.css +22 -0
- data/lib/prefab/install/templates/assets/stylesheets/starter.less +23 -0
- data/lib/prefab/install/templates/assets/stylesheets/starter.scss +22 -0
- data/lib/prefab/install/templates/form_builders/form_builder/_form.html.erb +28 -0
- data/lib/prefab/install/templates/form_builders/form_builder/_form.html.haml +19 -0
- data/lib/prefab/install/templates/form_builders/form_builder/_form.html.slim +18 -0
- data/lib/prefab/install/templates/layouts/starter.html.erb +51 -0
- data/lib/prefab/install/templates/layouts/starter.html.haml +40 -0
- data/lib/prefab/install/templates/layouts/starter.html.slim +44 -0
- data/lib/prefab/install/templates/lib/templates/erb/controller/view.html.erb +4 -0
- data/lib/prefab/install/templates/lib/templates/erb/scaffold/edit.html.erb +13 -0
- data/lib/prefab/install/templates/lib/templates/erb/scaffold/index.html.erb +33 -0
- data/lib/prefab/install/templates/lib/templates/erb/scaffold/new.html.erb +9 -0
- data/lib/prefab/install/templates/lib/templates/erb/scaffold/show.html.erb +19 -0
- data/lib/prefab/install/templates/lib/templates/haml/controller/view.html.haml +3 -0
- data/lib/prefab/install/templates/lib/templates/haml/scaffold/edit.html.haml +10 -0
- data/lib/prefab/install/templates/lib/templates/haml/scaffold/index.html.haml +26 -0
- data/lib/prefab/install/templates/lib/templates/haml/scaffold/new.html.haml +7 -0
- data/lib/prefab/install/templates/lib/templates/haml/scaffold/show.html.haml +14 -0
- data/lib/prefab/install/templates/lib/templates/slim/controller/view.html.slim +5 -0
- data/lib/prefab/install/templates/lib/templates/slim/scaffold/edit.html.slim +12 -0
- data/lib/prefab/install/templates/lib/templates/slim/scaffold/index.html.slim +31 -0
- data/lib/prefab/install/templates/lib/templates/slim/scaffold/new.html.slim +9 -0
- data/lib/prefab/install/templates/lib/templates/slim/scaffold/show.html.slim +16 -0
- data/lib/prefab/version.rb +3 -0
- data/lib/templates/active_record/model/model.rb +26 -0
- data/lib/templates/haml/scaffold/_form.html.haml +16 -0
- data/lib/templates/haml/scaffold/edit.html.haml +9 -0
- data/lib/templates/haml/scaffold/index.html.haml +22 -0
- data/lib/templates/haml/scaffold/new.html.haml +7 -0
- data/lib/templates/haml/scaffold/show.html.haml +12 -0
- data/lib/templates/rails/scaffold_controller/controller.rb +68 -0
- data/lib/templates/rspec/model/model_spec.rb +13 -0
- data/prefab.gemspec +29 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +68 -0
- data/test/dummy/config/boot.rb +6 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/test.rb +34 -0
- data/test/generators/prefab/install_generator_test.rb +86 -0
- data/test/test_helper.rb +7 -0
- metadata +198 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
/*
|
2
|
+
*= require bootstrap
|
3
|
+
*= require_self
|
4
|
+
*/
|
5
|
+
|
6
|
+
body {
|
7
|
+
padding-top: 60px;
|
8
|
+
}
|
9
|
+
|
10
|
+
.page-header a.btn {
|
11
|
+
float: right;
|
12
|
+
}
|
13
|
+
|
14
|
+
.page-header a.btn + a.btn {
|
15
|
+
margin-right: 8px;
|
16
|
+
}
|
17
|
+
|
18
|
+
input[type="radio"], input[type="checkbox"] {
|
19
|
+
width: initial;
|
20
|
+
height: initial;
|
21
|
+
margin-top: 7px;
|
22
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
@import "bootstrap";
|
2
|
+
|
3
|
+
body {
|
4
|
+
padding-top: @navbar-height + 10px;
|
5
|
+
}
|
6
|
+
|
7
|
+
@import "bootstrap-variables";
|
8
|
+
|
9
|
+
.page-header {
|
10
|
+
a.btn {
|
11
|
+
float: right;
|
12
|
+
}
|
13
|
+
|
14
|
+
a.btn + a.btn {
|
15
|
+
margin-right: 8px;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
input[type="radio"], input[type="checkbox"] {
|
20
|
+
width: initial;
|
21
|
+
height: initial;
|
22
|
+
margin-top: 7px;
|
23
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
@import "bootstrap-variables";
|
2
|
+
@import "bootstrap.scss";
|
3
|
+
|
4
|
+
body {
|
5
|
+
padding-top: $navbar-height + 10px;
|
6
|
+
}
|
7
|
+
|
8
|
+
.page-header {
|
9
|
+
a.btn {
|
10
|
+
float: right;
|
11
|
+
}
|
12
|
+
|
13
|
+
a.btn + a.btn {
|
14
|
+
margin-right: 8px;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
input[type="radio"], input[type="checkbox"] {
|
19
|
+
width: initial;
|
20
|
+
height: initial;
|
21
|
+
margin-top: 7px;
|
22
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%%= form_for(@<%= singular_table_name %>, :html => { :class => "form-horizontal" }) do |f| %>
|
2
|
+
<%% if @<%= singular_table_name %>.errors.any? %>
|
3
|
+
<div class="alert alert-danger alert-dismissable">
|
4
|
+
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
5
|
+
<h4><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h4>
|
6
|
+
|
7
|
+
<ul>
|
8
|
+
<%% @<%= singular_table_name %>.errors.full_messages.each do |msg| %>
|
9
|
+
<li><%%= msg %></li>
|
10
|
+
<%% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<%% end %>
|
14
|
+
|
15
|
+
<% attributes.each do |attribute| -%>
|
16
|
+
<div class="form-group">
|
17
|
+
<%%= f.label :<%= attribute.name %>, :class => "col-sm-2 control-label" %>
|
18
|
+
<div class="col-sm-10">
|
19
|
+
<%%= f.<%= attribute.field_type %> :<%= attribute.name %>, :class => "form-control" %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<% end -%>
|
23
|
+
<div class="form-group">
|
24
|
+
<div class="col-sm-offset-2 col-sm-10">
|
25
|
+
<%%= f.submit :class => "btn btn-primary" %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<%% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
= form_for @<%= singular_table_name %>, :html => { :class => "form-horizontal" } do |f|
|
2
|
+
-if @<%= singular_table_name %>.errors.any?
|
3
|
+
.alert.alert-danger.alert-dismissable
|
4
|
+
%button.close{"aria-hidden" => "true", "data-dismiss" => "alert", :type => "button"} ×
|
5
|
+
%h4= "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
|
6
|
+
|
7
|
+
%ul
|
8
|
+
- @<%= singular_table_name %>.errors.full_messages.each do |msg|
|
9
|
+
%li= msg
|
10
|
+
|
11
|
+
<% for attribute in attributes -%>
|
12
|
+
.form-group
|
13
|
+
= f.label :<%= attribute.name %>, :class => 'col-sm-2 control-label'
|
14
|
+
.col-sm-10
|
15
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, :class => 'form-control'
|
16
|
+
<% end -%>
|
17
|
+
.form-group
|
18
|
+
.col-sm-offset-2.col-sm-10
|
19
|
+
= f.submit :class => 'btn btn-primary'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
= form_for(@<%= singular_table_name %>, :html => { :class => "form-horizontal" }) do |f|
|
2
|
+
- if @<%= singular_table_name %>.errors.any?
|
3
|
+
.alert.alert-danger.alert-dismissable
|
4
|
+
button.close type="button" data-dismiss="alert" aria-hidden="true"
|
5
|
+
| ×
|
6
|
+
h4= "#{pluralize(@<%= singular_table_name %>.errors.count,"error")} prohibited this <%= singular_table_name %> from being saved:"
|
7
|
+
ul
|
8
|
+
- @<%= singular_table_name %>.errors.full_messages.each do |msg|
|
9
|
+
li= msg
|
10
|
+
<%- attributes.each do |attribute| -%>
|
11
|
+
.form-group
|
12
|
+
= f.label :<%= attribute.name %>, :class => "col-sm-2 control-label"
|
13
|
+
.col-sm-10
|
14
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, :class => "form-control"
|
15
|
+
<%- end -%>
|
16
|
+
.form-group
|
17
|
+
.col-sm-offset-2.col-sm-10
|
18
|
+
= f.submit :class => "btn btn-primary"
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Starter Template for Bootstrap</title>
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
7
|
+
<meta name="description" content="">
|
8
|
+
<meta name="author" content="">
|
9
|
+
|
10
|
+
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
11
|
+
<!--[if lt IE 9]>
|
12
|
+
<%%= javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js" %>
|
13
|
+
<![endif]-->
|
14
|
+
|
15
|
+
<%%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
16
|
+
<%%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
17
|
+
<%%= csrf_meta_tags %>
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div class="navbar navbar-inverse navbar-fixed-top">
|
21
|
+
<div class="container">
|
22
|
+
<div class="navbar-header">
|
23
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
24
|
+
<span class="sr-only">Toggle navigation</span>
|
25
|
+
<span class="icon-bar"></span>
|
26
|
+
<span class="icon-bar"></span>
|
27
|
+
<span class="icon-bar"></span>
|
28
|
+
</button>
|
29
|
+
<%%= link_to "Project name", "#", :class => "navbar-brand" %>
|
30
|
+
</div>
|
31
|
+
<div class="collapse navbar-collapse">
|
32
|
+
<ul class="nav navbar-nav">
|
33
|
+
<li class="active"><a href="#">Home</a></li>
|
34
|
+
<li><a href="#about">About</a></li>
|
35
|
+
<li><a href="#contact">Contact</a></li>
|
36
|
+
</ul>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<div class="container">
|
41
|
+
<%% flash.each do |name, msg| %>
|
42
|
+
<%%= content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable" do %>
|
43
|
+
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
44
|
+
<%%= msg %>
|
45
|
+
<%% end %>
|
46
|
+
<%% end %>
|
47
|
+
|
48
|
+
<%%= yield %>
|
49
|
+
</div>
|
50
|
+
</body>
|
51
|
+
</html>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{:charset => "utf-8"}
|
5
|
+
%title Starter Template for Bootstrap
|
6
|
+
%meta{:content => "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no", :name => "viewport"}
|
7
|
+
%meta{:content => "", :name => "description"}
|
8
|
+
%meta{:content => "", :name => "author"}
|
9
|
+
|
10
|
+
/ Le HTML5 shim, for IE6-8 support of HTML5 elements
|
11
|
+
/[if lt IE 9]
|
12
|
+
= javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"
|
13
|
+
|
14
|
+
= stylesheet_link_tag "application", :media => "all", "data-turbolinks-track" => true
|
15
|
+
= javascript_include_tag "application", "data-turbolinks-track" => true
|
16
|
+
= csrf_meta_tags
|
17
|
+
%body
|
18
|
+
.navbar.navbar-inverse.navbar-fixed-top
|
19
|
+
.container
|
20
|
+
.navbar-header
|
21
|
+
%button.navbar-toggle{:type => "button", :data => {:toggle => "collapse", :target => ".navbar-collapse"} }
|
22
|
+
%span.sr-only Toggle navigation
|
23
|
+
%span.icon-bar
|
24
|
+
%span.icon-bar
|
25
|
+
%span.icon-bar
|
26
|
+
= link_to "Project name", "#", :class => "navbar-brand"
|
27
|
+
.collapse.navbar-collapse
|
28
|
+
%ul.nav.navbar-nav
|
29
|
+
%li.active
|
30
|
+
%a{:href => "#"} Home
|
31
|
+
%li
|
32
|
+
%a{:href => "#about"} About
|
33
|
+
%li
|
34
|
+
%a{:href => "#contact"} Contact
|
35
|
+
.container
|
36
|
+
- flash.each do |name, msg|
|
37
|
+
= content_tag :div, :class => "alert alert-#{name == :error ? "danger" : "success" } alert-dismissable" do
|
38
|
+
%button.close{:type => "button", :data => {:dismiss => "alert"}, :aria => {:hidden => "true"} } ×
|
39
|
+
= msg
|
40
|
+
= yield
|
@@ -0,0 +1,44 @@
|
|
1
|
+
doctype html
|
2
|
+
html
|
3
|
+
head
|
4
|
+
meta charset="utf-8"
|
5
|
+
title
|
6
|
+
| Starter Template for Bootstrap
|
7
|
+
meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
|
8
|
+
meta name="description" content=""
|
9
|
+
meta name="author" content=""
|
10
|
+
/! HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
|
11
|
+
/[if lt IE 9]
|
12
|
+
= javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"
|
13
|
+
= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
|
14
|
+
= javascript_include_tag "application", "data-turbolinks-track" => true
|
15
|
+
= csrf_meta_tags
|
16
|
+
body
|
17
|
+
.navbar.navbar-inverse.navbar-fixed-top
|
18
|
+
.container
|
19
|
+
.navbar-header
|
20
|
+
button.navbar-toggle type="button" data-toggle="collapse" data-target=".navbar-collapse"
|
21
|
+
span.sr-only
|
22
|
+
| Toggle navigation
|
23
|
+
span.icon-bar
|
24
|
+
span.icon-bar
|
25
|
+
span.icon-bar
|
26
|
+
= link_to "Project name", "#", :class => "navbar-brand"
|
27
|
+
.collapse.navbar-collapse
|
28
|
+
ul.nav.navbar-nav
|
29
|
+
li.active
|
30
|
+
a href="#"
|
31
|
+
| Home
|
32
|
+
li
|
33
|
+
a href="#about"
|
34
|
+
| About
|
35
|
+
li
|
36
|
+
a href="#contact"
|
37
|
+
| Contact
|
38
|
+
.container
|
39
|
+
- flash.each do |name, msg|
|
40
|
+
= content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable" do
|
41
|
+
button.close type="button" data-dismiss="alert" aria-hidden="true"
|
42
|
+
| ×
|
43
|
+
= msg
|
44
|
+
= yield
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<%%= link_to <%= index_helper %>_path, :class => 'btn btn-default' do %>
|
3
|
+
<span class="glyphicon glyphicon-list-alt"></span>
|
4
|
+
Back
|
5
|
+
<%% end %>
|
6
|
+
<%%= link_to @<%= singular_table_name %>, :class => 'btn btn-primary' do %>
|
7
|
+
<span class="glyphicon glyphicon-info-sign"></span>
|
8
|
+
Show
|
9
|
+
<%% end %>
|
10
|
+
<h1>Editing <%= singular_table_name %></h1>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<%%= render 'form' %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<%%= link_to new_<%= singular_table_name %>_path, :class => 'btn btn-primary' do %>
|
3
|
+
<span class="glyphicon glyphicon-plus"></span>
|
4
|
+
New <%= human_name %>
|
5
|
+
<%% end %>
|
6
|
+
<h1>Listing <%= plural_table_name %></h1>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="table-responsive">
|
10
|
+
<table class="table table-striped table-bordered table-hover">
|
11
|
+
<thead>
|
12
|
+
<tr>
|
13
|
+
<% attributes.each do |attribute| -%>
|
14
|
+
<th><%= attribute.human_name %></th>
|
15
|
+
<% end -%>
|
16
|
+
<th></th>
|
17
|
+
<th></th>
|
18
|
+
<th></th>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
|
22
|
+
<tbody>
|
23
|
+
<%%= content_tag_for(:tr, @<%= plural_table_name %>) do |<%= singular_table_name %>| %>
|
24
|
+
<% attributes.each do |attribute| -%>
|
25
|
+
<td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
|
26
|
+
<% end -%>
|
27
|
+
<td><%%= link_to 'Show', <%= singular_table_name %> %></td>
|
28
|
+
<td><%%= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>) %></td>
|
29
|
+
<td><%%= link_to 'Destroy', <%= singular_table_name %>, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
30
|
+
<%% end %>
|
31
|
+
</tbody>
|
32
|
+
</table>
|
33
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<%%= link_to <%= index_helper %>_path, :class => 'btn btn-default' do %>
|
3
|
+
<span class="glyphicon glyphicon-list-alt"></span>
|
4
|
+
Back
|
5
|
+
<%% end %>
|
6
|
+
<%%= link_to edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), :class => 'btn btn-primary' do %>
|
7
|
+
<span class="glyphicon glyphicon-pencil"></span>
|
8
|
+
Edit
|
9
|
+
<%% end %>
|
10
|
+
<h1>Show <%= singular_table_name %></h1>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<dl class="dl-horizontal">
|
14
|
+
<%- attributes.each do |attribute| -%>
|
15
|
+
<dt><%= attribute.human_name %>:</dt>
|
16
|
+
<dd><%%= @<%= singular_table_name %>.<%= attribute.name %> %></dd>
|
17
|
+
|
18
|
+
<%- end -%>
|
19
|
+
</dl>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.page-header
|
2
|
+
= link_to <%= index_helper %>_path, :class => 'btn btn-default' do
|
3
|
+
%span.glyphicon.glyphicon-list-alt
|
4
|
+
Back
|
5
|
+
= link_to @<%= singular_table_name %>, :class => 'btn btn-primary' do
|
6
|
+
%span.glyphicon.glyphicon-info-sign
|
7
|
+
Show
|
8
|
+
%h1 Editing <%= singular_table_name %>
|
9
|
+
|
10
|
+
= render 'form'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.page-header
|
2
|
+
= link_to new_<%= singular_table_name %>_path, :class => 'btn btn-primary' do
|
3
|
+
%span.glyphicon.glyphicon-plus
|
4
|
+
New <%= human_name %>
|
5
|
+
%h1 Listing <%= plural_table_name %>
|
6
|
+
|
7
|
+
.table-responsive
|
8
|
+
%table.table.table-striped.table-bordered.table-hover
|
9
|
+
%thead
|
10
|
+
%tr
|
11
|
+
<% for attribute in attributes -%>
|
12
|
+
%th <%= attribute.human_name %>
|
13
|
+
<% end -%>
|
14
|
+
%th
|
15
|
+
%th
|
16
|
+
%th
|
17
|
+
|
18
|
+
%tbody
|
19
|
+
- @<%= plural_table_name %>.each do |<%= singular_table_name %>|
|
20
|
+
%tr
|
21
|
+
<% for attribute in attributes -%>
|
22
|
+
%td= <%= singular_table_name %>.<%= attribute.name %>
|
23
|
+
<% end -%>
|
24
|
+
%td= link_to 'Show', <%= singular_table_name %>
|
25
|
+
%td= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
|
26
|
+
%td= link_to 'Destroy', <%= singular_table_name %>, :data => { confirm: 'Are you sure?' }, :method => :delete
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.page-header
|
2
|
+
= link_to <%= index_helper %>_path, :class => 'btn btn-default' do
|
3
|
+
%span.glyphicon.glyphicon-list-alt
|
4
|
+
Back
|
5
|
+
= link_to edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), :class => 'btn btn-primary' do
|
6
|
+
%span.glyphicon.glyphicon-pencil
|
7
|
+
Edit
|
8
|
+
%h1 Show <%= singular_table_name %>
|
9
|
+
|
10
|
+
%dl.dl-horizontal
|
11
|
+
<%- for attribute in attributes -%>
|
12
|
+
%dt <%= attribute.human_name %>:
|
13
|
+
%dd= @<%= singular_table_name %>.<%= attribute.name %>
|
14
|
+
<%- end -%>
|