toronto 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +28 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +179 -0
  7. data/Rakefile +147 -0
  8. data/lib/generators/toronto/install/install_generator.rb +68 -0
  9. data/lib/generators/toronto/install/templates/assets/stylesheets/bootstrap-variables.less +861 -0
  10. data/lib/generators/toronto/install/templates/assets/stylesheets/bootstrap-variables.scss +866 -0
  11. data/lib/generators/toronto/install/templates/assets/stylesheets/starter.css +22 -0
  12. data/lib/generators/toronto/install/templates/assets/stylesheets/starter.less +23 -0
  13. data/lib/generators/toronto/install/templates/assets/stylesheets/starter.scss +23 -0
  14. data/lib/generators/toronto/install/templates/config/initializers/locales.rb +4 -0
  15. data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.erb +39 -0
  16. data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.haml +26 -0
  17. data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.slim +21 -0
  18. data/lib/generators/toronto/install/templates/helpers/menu_helper.rb +7 -0
  19. data/lib/generators/toronto/install/templates/layouts/starter.html.erb +57 -0
  20. data/lib/generators/toronto/install/templates/layouts/starter.html.haml +48 -0
  21. data/lib/generators/toronto/install/templates/layouts/starter.html.slim +53 -0
  22. data/lib/generators/toronto/install/templates/lib/rails/generators/haml/scaffold/scaffold_generator.rb +51 -0
  23. data/lib/generators/toronto/install/templates/lib/templates/erb/controller/view.html.erb +4 -0
  24. data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/edit.html.erb +13 -0
  25. data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/index.html.erb +33 -0
  26. data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/new.html.erb +9 -0
  27. data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/show.html.erb +19 -0
  28. data/lib/generators/toronto/install/templates/lib/templates/haml/controller/view.html.haml +3 -0
  29. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/edit.html.haml +10 -0
  30. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/en.yml +23 -0
  31. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/fr.yml +23 -0
  32. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/index.html.haml +30 -0
  33. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/new.html.haml +7 -0
  34. data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/show.html.haml +18 -0
  35. data/lib/generators/toronto/install/templates/lib/templates/slim/controller/view.html.slim +5 -0
  36. data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/edit.html.slim +12 -0
  37. data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/index.html.slim +31 -0
  38. data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/new.html.slim +9 -0
  39. data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/show.html.slim +16 -0
  40. data/lib/toronto/version.rb +3 -0
  41. data/lib/toronto.rb +22 -0
  42. data/readme-template.md.erb +163 -0
  43. data/test/dummy/Rakefile +7 -0
  44. data/test/dummy/app/assets/javascripts/application.js +13 -0
  45. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  46. data/test/dummy/config/application.rb +68 -0
  47. data/test/dummy/config/boot.rb +6 -0
  48. data/test/dummy/config/environment.rb +5 -0
  49. data/test/dummy/config/environments/test.rb +39 -0
  50. data/test/dummy/config.ru +4 -0
  51. data/test/generators/bootstrap/install_generator_test.rb +104 -0
  52. data/test/test_helper.rb +7 -0
  53. data/toronto.gemspec +30 -0
  54. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  55. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  56. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  57. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  58. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  59. data/vendor/assets/javascripts/bootstrap/affix.js +162 -0
  60. data/vendor/assets/javascripts/bootstrap/alert.js +94 -0
  61. data/vendor/assets/javascripts/bootstrap/button.js +116 -0
  62. data/vendor/assets/javascripts/bootstrap/carousel.js +237 -0
  63. data/vendor/assets/javascripts/bootstrap/collapse.js +211 -0
  64. data/vendor/assets/javascripts/bootstrap/dropdown.js +161 -0
  65. data/vendor/assets/javascripts/bootstrap/modal.js +339 -0
  66. data/vendor/assets/javascripts/bootstrap/popover.js +108 -0
  67. data/vendor/assets/javascripts/bootstrap/scrollspy.js +172 -0
  68. data/vendor/assets/javascripts/bootstrap/tab.js +153 -0
  69. data/vendor/assets/javascripts/bootstrap/tooltip.js +476 -0
  70. data/vendor/assets/javascripts/bootstrap/transition.js +59 -0
  71. data/vendor/assets/javascripts/bootstrap.js +12 -0
  72. data/vendor/assets/stylesheets/bootstrap.css.erb +6584 -0
  73. data/vendor/assets/stylesheets/bootstrap.css.map +1 -0
  74. data/vendor/twitter/bootstrap/less/alerts.less +73 -0
  75. data/vendor/twitter/bootstrap/less/badges.less +66 -0
  76. data/vendor/twitter/bootstrap/less/bootstrap.less +50 -0
  77. data/vendor/twitter/bootstrap/less/breadcrumbs.less +26 -0
  78. data/vendor/twitter/bootstrap/less/button-groups.less +243 -0
  79. data/vendor/twitter/bootstrap/less/buttons.less +160 -0
  80. data/vendor/twitter/bootstrap/less/carousel.less +269 -0
  81. data/vendor/twitter/bootstrap/less/close.less +34 -0
  82. data/vendor/twitter/bootstrap/less/code.less +69 -0
  83. data/vendor/twitter/bootstrap/less/component-animations.less +33 -0
  84. data/vendor/twitter/bootstrap/less/dropdowns.less +214 -0
  85. data/vendor/twitter/bootstrap/less/forms.less +574 -0
  86. data/vendor/twitter/bootstrap/less/glyphicons.less +305 -0
  87. data/vendor/twitter/bootstrap/less/grid.less +84 -0
  88. data/vendor/twitter/bootstrap/less/input-groups.less +166 -0
  89. data/vendor/twitter/bootstrap/less/jumbotron.less +50 -0
  90. data/vendor/twitter/bootstrap/less/labels.less +64 -0
  91. data/vendor/twitter/bootstrap/less/list-group.less +124 -0
  92. data/vendor/twitter/bootstrap/less/media.less +61 -0
  93. data/vendor/twitter/bootstrap/less/mixins/alerts.less +14 -0
  94. data/vendor/twitter/bootstrap/less/mixins/background-variant.less +8 -0
  95. data/vendor/twitter/bootstrap/less/mixins/border-radius.less +18 -0
  96. data/vendor/twitter/bootstrap/less/mixins/buttons.less +52 -0
  97. data/vendor/twitter/bootstrap/less/mixins/center-block.less +7 -0
  98. data/vendor/twitter/bootstrap/less/mixins/clearfix.less +22 -0
  99. data/vendor/twitter/bootstrap/less/mixins/forms.less +85 -0
  100. data/vendor/twitter/bootstrap/less/mixins/gradients.less +59 -0
  101. data/vendor/twitter/bootstrap/less/mixins/grid-framework.less +91 -0
  102. data/vendor/twitter/bootstrap/less/mixins/grid.less +122 -0
  103. data/vendor/twitter/bootstrap/less/mixins/hide-text.less +21 -0
  104. data/vendor/twitter/bootstrap/less/mixins/image.less +33 -0
  105. data/vendor/twitter/bootstrap/less/mixins/labels.less +12 -0
  106. data/vendor/twitter/bootstrap/less/mixins/list-group.less +29 -0
  107. data/vendor/twitter/bootstrap/less/mixins/nav-divider.less +10 -0
  108. data/vendor/twitter/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  109. data/vendor/twitter/bootstrap/less/mixins/opacity.less +8 -0
  110. data/vendor/twitter/bootstrap/less/mixins/pagination.less +23 -0
  111. data/vendor/twitter/bootstrap/less/mixins/panels.less +24 -0
  112. data/vendor/twitter/bootstrap/less/mixins/progress-bar.less +10 -0
  113. data/vendor/twitter/bootstrap/less/mixins/reset-filter.less +8 -0
  114. data/vendor/twitter/bootstrap/less/mixins/resize.less +6 -0
  115. data/vendor/twitter/bootstrap/less/mixins/responsive-visibility.less +15 -0
  116. data/vendor/twitter/bootstrap/less/mixins/size.less +10 -0
  117. data/vendor/twitter/bootstrap/less/mixins/tab-focus.less +9 -0
  118. data/vendor/twitter/bootstrap/less/mixins/table-row.less +28 -0
  119. data/vendor/twitter/bootstrap/less/mixins/text-emphasis.less +8 -0
  120. data/vendor/twitter/bootstrap/less/mixins/text-overflow.less +8 -0
  121. data/vendor/twitter/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  122. data/vendor/twitter/bootstrap/less/mixins.less +39 -0
  123. data/vendor/twitter/bootstrap/less/modals.less +150 -0
  124. data/vendor/twitter/bootstrap/less/navbar.less +660 -0
  125. data/vendor/twitter/bootstrap/less/navs.less +242 -0
  126. data/vendor/twitter/bootstrap/less/normalize.less +427 -0
  127. data/vendor/twitter/bootstrap/less/pager.less +54 -0
  128. data/vendor/twitter/bootstrap/less/pagination.less +88 -0
  129. data/vendor/twitter/bootstrap/less/panels.less +265 -0
  130. data/vendor/twitter/bootstrap/less/popovers.less +135 -0
  131. data/vendor/twitter/bootstrap/less/print.less +107 -0
  132. data/vendor/twitter/bootstrap/less/progress-bars.less +87 -0
  133. data/vendor/twitter/bootstrap/less/responsive-embed.less +35 -0
  134. data/vendor/twitter/bootstrap/less/responsive-utilities.less +194 -0
  135. data/vendor/twitter/bootstrap/less/scaffolding.less +162 -0
  136. data/vendor/twitter/bootstrap/less/tables.less +234 -0
  137. data/vendor/twitter/bootstrap/less/theme.less +273 -0
  138. data/vendor/twitter/bootstrap/less/thumbnails.less +36 -0
  139. data/vendor/twitter/bootstrap/less/tooltip.less +102 -0
  140. data/vendor/twitter/bootstrap/less/type.less +302 -0
  141. data/vendor/twitter/bootstrap/less/utilities.less +55 -0
  142. data/vendor/twitter/bootstrap/less/variables.less +861 -0
  143. data/vendor/twitter/bootstrap/less/wells.less +29 -0
  144. data/vendor/twitter/bootstrap/sass/_bootstrap-compass.scss +9 -0
  145. data/vendor/twitter/bootstrap/sass/_bootstrap-mincer.scss +19 -0
  146. data/vendor/twitter/bootstrap/sass/_bootstrap-sprockets.scss +9 -0
  147. data/vendor/twitter/bootstrap/sass/_bootstrap.scss +50 -0
  148. data/vendor/twitter/bootstrap/sass/bootstrap/_alerts.scss +73 -0
  149. data/vendor/twitter/bootstrap/sass/bootstrap/_badges.scss +68 -0
  150. data/vendor/twitter/bootstrap/sass/bootstrap/_breadcrumbs.scss +26 -0
  151. data/vendor/twitter/bootstrap/sass/bootstrap/_button-groups.scss +243 -0
  152. data/vendor/twitter/bootstrap/sass/bootstrap/_buttons.scss +160 -0
  153. data/vendor/twitter/bootstrap/sass/bootstrap/_carousel.scss +269 -0
  154. data/vendor/twitter/bootstrap/sass/bootstrap/_close.scss +36 -0
  155. data/vendor/twitter/bootstrap/sass/bootstrap/_code.scss +69 -0
  156. data/vendor/twitter/bootstrap/sass/bootstrap/_component-animations.scss +37 -0
  157. data/vendor/twitter/bootstrap/sass/bootstrap/_dropdowns.scss +214 -0
  158. data/vendor/twitter/bootstrap/sass/bootstrap/_forms.scss +578 -0
  159. data/vendor/twitter/bootstrap/sass/bootstrap/_glyphicons.scss +305 -0
  160. data/vendor/twitter/bootstrap/sass/bootstrap/_grid.scss +84 -0
  161. data/vendor/twitter/bootstrap/sass/bootstrap/_input-groups.scss +166 -0
  162. data/vendor/twitter/bootstrap/sass/bootstrap/_jumbotron.scss +50 -0
  163. data/vendor/twitter/bootstrap/sass/bootstrap/_labels.scss +66 -0
  164. data/vendor/twitter/bootstrap/sass/bootstrap/_list-group.scss +124 -0
  165. data/vendor/twitter/bootstrap/sass/bootstrap/_media.scss +61 -0
  166. data/vendor/twitter/bootstrap/sass/bootstrap/_mixins.scss +39 -0
  167. data/vendor/twitter/bootstrap/sass/bootstrap/_modals.scss +150 -0
  168. data/vendor/twitter/bootstrap/sass/bootstrap/_navbar.scss +662 -0
  169. data/vendor/twitter/bootstrap/sass/bootstrap/_navs.scss +242 -0
  170. data/vendor/twitter/bootstrap/sass/bootstrap/_normalize.scss +427 -0
  171. data/vendor/twitter/bootstrap/sass/bootstrap/_pager.scss +54 -0
  172. data/vendor/twitter/bootstrap/sass/bootstrap/_pagination.scss +88 -0
  173. data/vendor/twitter/bootstrap/sass/bootstrap/_panels.scss +265 -0
  174. data/vendor/twitter/bootstrap/sass/bootstrap/_popovers.scss +135 -0
  175. data/vendor/twitter/bootstrap/sass/bootstrap/_print.scss +107 -0
  176. data/vendor/twitter/bootstrap/sass/bootstrap/_progress-bars.scss +87 -0
  177. data/vendor/twitter/bootstrap/sass/bootstrap/_responsive-embed.scss +35 -0
  178. data/vendor/twitter/bootstrap/sass/bootstrap/_responsive-utilities.scss +177 -0
  179. data/vendor/twitter/bootstrap/sass/bootstrap/_scaffolding.scss +162 -0
  180. data/vendor/twitter/bootstrap/sass/bootstrap/_tables.scss +234 -0
  181. data/vendor/twitter/bootstrap/sass/bootstrap/_theme.scss +273 -0
  182. data/vendor/twitter/bootstrap/sass/bootstrap/_thumbnails.scss +38 -0
  183. data/vendor/twitter/bootstrap/sass/bootstrap/_tooltip.scss +102 -0
  184. data/vendor/twitter/bootstrap/sass/bootstrap/_type.scss +298 -0
  185. data/vendor/twitter/bootstrap/sass/bootstrap/_utilities.scss +55 -0
  186. data/vendor/twitter/bootstrap/sass/bootstrap/_variables.scss +866 -0
  187. data/vendor/twitter/bootstrap/sass/bootstrap/_wells.scss +29 -0
  188. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_alerts.scss +14 -0
  189. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_background-variant.scss +11 -0
  190. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_border-radius.scss +18 -0
  191. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_buttons.scss +52 -0
  192. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_center-block.scss +7 -0
  193. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_clearfix.scss +22 -0
  194. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_forms.scss +88 -0
  195. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_gradients.scss +58 -0
  196. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_grid-framework.scss +81 -0
  197. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_grid.scss +122 -0
  198. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_hide-text.scss +21 -0
  199. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_image.scss +33 -0
  200. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_labels.scss +12 -0
  201. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_list-group.scss +31 -0
  202. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_nav-divider.scss +10 -0
  203. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  204. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_opacity.scss +8 -0
  205. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_pagination.scss +23 -0
  206. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_panels.scss +24 -0
  207. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_progress-bar.scss +10 -0
  208. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_reset-filter.scss +8 -0
  209. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_resize.scss +6 -0
  210. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
  211. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_size.scss +10 -0
  212. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_tab-focus.scss +9 -0
  213. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_table-row.scss +28 -0
  214. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_text-emphasis.scss +11 -0
  215. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_text-overflow.scss +8 -0
  216. data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  217. metadata +312 -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,23 @@
1
+ @import "bootstrap-variables.scss";
2
+ @import "bootstrap-sprockets.scss";
3
+ @import "bootstrap.scss";
4
+
5
+ body {
6
+ padding-top: $navbar-height + 10px;
7
+ }
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,4 @@
1
+ I18n.config.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]
2
+
3
+ I18n.config.available_locales = [ :en, :fr ]
4
+ I18n.default_locale = :en
@@ -0,0 +1,39 @@
1
+ <%%= form_for(@<%= singular_table_name %>, html: { class: "form-horizontal", role: "form" }) do |f| %>
2
+ <%% if @<%= singular_table_name %>.errors.any? %>
3
+ <div class="alert alert-danger alert-dismissable" role="alert">
4
+ <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></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
+ <% if attribute.field_type == :check_box %>
18
+ <div class="col-sm-offset-2 col-sm-10">
19
+ <div class="checkbox">
20
+ <label>
21
+ <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
22
+ <%= attribute.human_name %>
23
+ </label>
24
+ </div>
25
+ </div>
26
+ <% else %>
27
+ <%%= f.label :<%= attribute.name %>, class: "col-sm-2 control-label" %>
28
+ <div class="col-sm-10">
29
+ <%%= f.<%= attribute.field_type %> :<%= attribute.name %>, class: "form-control" %>
30
+ </div>
31
+ <% end %>
32
+ </div>
33
+ <% end -%>
34
+ <div class="form-group">
35
+ <div class="col-sm-offset-2 col-sm-10">
36
+ <%%= f.submit class: "btn btn-primary" %>
37
+ </div>
38
+ </div>
39
+ <%% end %>
@@ -0,0 +1,26 @@
1
+ = form_for @<%= singular_table_name %>, html: { class: "form-horizontal", role: "form" } do |f|
2
+ -if @<%= singular_table_name %>.errors.any?
3
+ .alert.alert-danger.alert-dismissable{role: "alert"}
4
+ %button.close{type: "button", data: {dismiss: "alert"} }
5
+ %span{aria: {hidden: "true"} } &times;
6
+ %span.sr-only Close
7
+ %h4= "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
8
+
9
+ %ul
10
+ - @<%= singular_table_name %>.errors.full_messages.each do |msg|
11
+ %li= msg
12
+
13
+ <% for attribute in attributes -%>
14
+ .form-group
15
+ = f.label :<%= attribute.name %>, class: 'col-sm-2 control-label'
16
+ .col-sm-10
17
+ <% if attribute.type == :references %>
18
+ = f.collection_select :<%= attribute.name %>_id, <%= attribute.name.camelize %>.all, :id, :name, prompt: true
19
+ <% else %>
20
+ = f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'form-control'
21
+ <% end %>
22
+
23
+ <% end -%>
24
+ .form-group
25
+ .col-sm-offset-2.col-sm-10
26
+ = f.submit class: 'btn btn-primary', value: t( '.submit' ), 'data-disable-with' => t( '.submit' )
@@ -0,0 +1,21 @@
1
+ = form_for(@<%= singular_table_name %>, html: { class: "form-horizontal", role: "form" }) do |f|
2
+ - if @<%= singular_table_name %>.errors.any?
3
+ .alert.alert-danger.alert-dismissable role="alert"
4
+ button.close type="button" data-dismiss="alert"
5
+ span aria-hidden="true"
6
+ | &times;
7
+ span.sr-only
8
+ | Close
9
+ h4= "#{pluralize(@<%= singular_table_name %>.errors.count,"error")} prohibited this <%= singular_table_name %> from being saved:"
10
+ ul
11
+ - @<%= singular_table_name %>.errors.full_messages.each do |msg|
12
+ li= msg
13
+ <%- attributes.each do |attribute| -%>
14
+ .form-group
15
+ = f.label :<%= attribute.name %>, class: "col-sm-2 control-label"
16
+ .col-sm-10
17
+ = f.<%= attribute.field_type %> :<%= attribute.name %>, class: "form-control"
18
+ <%- end -%>
19
+ .form-group
20
+ .col-sm-offset-2.col-sm-10
21
+ = f.submit class: "btn btn-primary"
@@ -0,0 +1,7 @@
1
+ def nav_link(link_text, link_path)
2
+ class_name = current_page?(link_path) ? 'active' : ''
3
+
4
+ content_tag(:li, :class => class_name) do
5
+ link_to link_text, link_path
6
+ end
7
+ end
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="">
8
+ <meta name="author" content="">
9
+ <title>Starter Template for Bootstrap</title>
10
+
11
+ <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
12
+ <!--[if lt IE 9]>
13
+ <%%= javascript_include_tag "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js", "https://oss.maxcdn.com/respond/1.4.2/respond.min.js" %>
14
+ <![endif]-->
15
+
16
+ <%- if options[:skip_turbolinks] -%>
17
+ <%%= stylesheet_link_tag 'application', media: 'all' %>
18
+ <%%= javascript_include_tag 'application' %>
19
+ <%- else -%>
20
+ <%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
21
+ <%%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
22
+ <%- end -%>
23
+ <%%= csrf_meta_tags %>
24
+ </head>
25
+ <body>
26
+ <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
27
+ <div class="container">
28
+ <div class="navbar-header">
29
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
30
+ <span class="sr-only">Toggle navigation</span>
31
+ <span class="icon-bar"></span>
32
+ <span class="icon-bar"></span>
33
+ <span class="icon-bar"></span>
34
+ </button>
35
+ <%%= link_to "Project name", "#", class: "navbar-brand" %>
36
+ </div>
37
+ <div id="navbar" class="collapse navbar-collapse">
38
+ <ul class="nav navbar-nav">
39
+ <li class="active"><a href="#">Home</a></li>
40
+ <li><a href="#about">About</a></li>
41
+ <li><a href="#contact">Contact</a></li>
42
+ </ul>
43
+ </div>
44
+ </div>
45
+ </nav>
46
+ <div class="container">
47
+ <%% flash.each do |name, msg| %>
48
+ <%%= content_tag :div, class: "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable", role: "alert" do %>
49
+ <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
50
+ <%%= msg %>
51
+ <%% end %>
52
+ <%% end %>
53
+
54
+ <%%= yield %>
55
+ </div>
56
+ </body>
57
+ </html>
@@ -0,0 +1,48 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %meta{charset: 'utf-8' }
5
+ %meta{content: 'IE=edge', 'http-equiv' => 'X-UA-Compatible' }
6
+ %meta{content: 'width=device-width, initial-scale=1', name: 'viewport' }
7
+ %meta{content: '', name: 'description' }
8
+ %meta{content: '', name: 'author' }
9
+ %title Starter Template for Bootstrap
10
+
11
+ / HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
12
+ /[if lt IE 9]
13
+ = javascript_include_tag 'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js', 'https://oss.maxcdn.com/respond/1.4.2/respond.min.js'
14
+
15
+ <%- if options[:skip_turbolinks] -%>
16
+ = stylesheet_link_tag 'application', media: 'all'
17
+ = javascript_include_tag 'application'
18
+ <%- else -%>
19
+ = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
20
+ = javascript_include_tag 'application', 'data-turbolinks-track' => true
21
+ <%- end -%>
22
+ = csrf_meta_tags
23
+ %body
24
+ %nav.navbar.navbar-inverse.navbar-fixed-top{role: 'navigation'}
25
+ .container
26
+ .navbar-header
27
+ %button.navbar-toggle.collapsed{type: 'button', data: {toggle: 'collapse', target: '#navbar'}, aria: {expanded: 'false', controls: 'navbar'} }
28
+ %span.sr-only Toggle navigation
29
+ %span.icon-bar
30
+ %span.icon-bar
31
+ %span.icon-bar
32
+ = link_to "Project name", "#", class: "navbar-brand"
33
+ #navbar.collapse.navbar-collapse
34
+ %ul.nav.navbar-nav
35
+ %li.active
36
+ = nav_link( 'Home', '#' )
37
+ %li
38
+ = nav_link( 'About', '#about' )
39
+ %li
40
+ = nav_link( 'Contact', '#contact' )
41
+ .container
42
+ - flash.each do |name, msg|
43
+ = content_tag :div, class: "alert alert-#{name == :error ? 'danger' : 'success' } alert-dismissable", role: 'alert' do
44
+ %button.close{type: 'button', data: {dismiss: 'alert'} }
45
+ %span{aria: {hidden: 'true'} } &times;
46
+ %span.sr-only Close
47
+ = msg
48
+ = yield
@@ -0,0 +1,53 @@
1
+ doctype html
2
+ html
3
+ head
4
+ meta charset="utf-8"
5
+ meta http-equiv="X-UA-Compatible" content="IE=edge"
6
+ meta name="viewport" content="width=device-width, initial-scale=1"
7
+ meta name="description" content=""
8
+ meta name="author" content=""
9
+ title
10
+ | Starter Template for Bootstrap
11
+ /! HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
12
+ /[if lt IE 9]
13
+ = javascript_include_tag "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js", "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"
14
+ <%- if options[:skip_turbolinks] -%>
15
+ = stylesheet_link_tag 'application', media: 'all'
16
+ = javascript_include_tag 'application'
17
+ <%- else -%>
18
+ = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
19
+ = javascript_include_tag 'application', 'data-turbolinks-track' => true
20
+ <%- end -%>
21
+ = csrf_meta_tags
22
+ body
23
+ nav.navbar.navbar-inverse.navbar-fixed-top role="navigation"
24
+ .container
25
+ .navbar-header
26
+ button.navbar-toggle.collapsed type="button" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"
27
+ span.sr-only
28
+ | Toggle navigation
29
+ span.icon-bar
30
+ span.icon-bar
31
+ span.icon-bar
32
+ = link_to "Project name", "#", class: "navbar-brand"
33
+ #navbar.collapse.navbar-collapse
34
+ ul.nav.navbar-nav
35
+ li.active
36
+ a href="#"
37
+ | Home
38
+ li
39
+ a href="#about"
40
+ | About
41
+ li
42
+ a href="#contact"
43
+ | Contact
44
+ .container
45
+ - flash.each do |name, msg|
46
+ = content_tag :div, class: "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable", role: "alert" do
47
+ button.close type="button" data-dismiss="alert"
48
+ span aria-hidden="true"
49
+ | &times;
50
+ span.sr-only
51
+ | Close
52
+ = msg
53
+ = yield
@@ -0,0 +1,51 @@
1
+ require 'rails/generators/erb/scaffold/scaffold_generator'
2
+ require 'yaml'
3
+
4
+ module Haml
5
+ module Generators
6
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
7
+ source_root File.expand_path("../templates", __FILE__)
8
+
9
+ def copy_view_files
10
+ available_views.each do |view|
11
+ filename = filename_with_extensions(view)
12
+ template "#{view}.html.haml", File.join("app/views", controller_file_path, filename)
13
+ end
14
+
15
+ languages = %w( en fr )
16
+
17
+ languages.each do |lang|
18
+ template "#{lang}.yml", File.join( 'config/locales', lang, "#{name.downcase.pluralize}.yml" )
19
+ end
20
+
21
+ end
22
+
23
+ hook_for :form_builder, :as => :scaffold
24
+
25
+ def copy_form_file
26
+ if options[:form_builder].nil?
27
+ filename = filename_with_extensions("_form")
28
+ template "_form.html.haml", File.join("app/views", controller_file_path, filename)
29
+ end
30
+ end
31
+
32
+ def add_menu
33
+ data = %{
34
+ %li
35
+ = nav_link( '#{name.humanize.pluralize}', #{name.underscore.pluralize}_path )}
36
+ insert_into_file 'app/views/layouts/application.html.haml', data, :after => "= nav_link( 'Home', '#' )"
37
+ end
38
+
39
+ protected
40
+
41
+ def available_views
42
+ %w(index edit show new)
43
+ end
44
+
45
+ def handler
46
+ :haml
47
+ end
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,4 @@
1
+ <div class="page-header">
2
+ <h1><%= class_name %>#<%= @action %></h1>
3
+ </div>
4
+ <p>Find me in <%= @path %></p>
@@ -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,9 @@
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
+ <h1>New <%= singular_table_name %></h1>
7
+ </div>
8
+
9
+ <%%= render 'form' %>
@@ -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,3 @@
1
+ .page-header
2
+ %h1 <%= class_name %>#<%= @action %>
3
+ %p Find me in <%= @path %>
@@ -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
+ = t( '.back' )
5
+ = link_to @<%= singular_table_name %>, class: 'btn btn-primary' do
6
+ %span.glyphicon.glyphicon-info-sign
7
+ = t( '.show' )
8
+ %h1= t( '.title' )
9
+
10
+ = render 'form'
@@ -0,0 +1,23 @@
1
+ en:
2
+ <%= plural_table_name %>:
3
+ index:
4
+ title: Index
5
+ edit: Edit
6
+ new: New
7
+ show: Show
8
+ delete: Delete
9
+ confirm: Are you sure ?
10
+ edit:
11
+ title: Edit
12
+ back: Back
13
+ show: Show
14
+ show:
15
+ title: Show
16
+ back: Back
17
+ edit: Edit
18
+ new:
19
+ title: New
20
+ back: Back
21
+ form:
22
+ submit: Submit
23
+
@@ -0,0 +1,23 @@
1
+ fr:
2
+ <%= plural_table_name %>:
3
+ index:
4
+ title: Liste
5
+ edit: Editer
6
+ new: Nouveau
7
+ show: Détail
8
+ delete: Suppression
9
+ confirm: Etes vous sur ?
10
+ edit:
11
+ title: Editer
12
+ back: Retour
13
+ show: Détail
14
+ show:
15
+ title: Détail
16
+ back: Retour
17
+ edit: Editer
18
+ new:
19
+ title: Ajouter
20
+ back: Retour
21
+ form:
22
+ submit: Valider
23
+
@@ -0,0 +1,30 @@
1
+ .page-header
2
+ = link_to new_<%= singular_table_name %>_path, class: 'btn btn-primary' do
3
+ %span.glyphicon.glyphicon-plus
4
+ = t( '.new' )
5
+ %h1= t( '.title' )
6
+
7
+ .table-responsive
8
+ %table.table.table-striped.table-bordered.table-hover
9
+ %thead
10
+ %tr
11
+ <% for attribute in attributes -%>
12
+ %th= <%= "t( '." + attribute.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
+ <% if attribute.type == :references %>
23
+ %td= <%= singular_table_name %>.<%= attribute.name %>.name
24
+ <% else %>
25
+ %td= <%= singular_table_name %>.<%= attribute.name %>
26
+ <% end %>
27
+ <% end -%>
28
+ %td= link_to t( '.show' ), <%= singular_table_name %>
29
+ %td= link_to t( '.edit' ), edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
30
+ %td= link_to t( '.delete' ), <%= singular_table_name %>, data: { confirm: t( '.confirm' ) }, method: :delete
@@ -0,0 +1,7 @@
1
+ .page-header
2
+ = link_to <%= index_helper %>_path, class: 'btn btn-default' do
3
+ %span.glyphicon.glyphicon-list-alt
4
+ = t( '.back' )
5
+ %h1= t( '.title' )
6
+
7
+ = render 'form'
@@ -0,0 +1,18 @@
1
+ .page-header
2
+ = link_to <%= index_helper %>_path, class: 'btn btn-default' do
3
+ %span.glyphicon.glyphicon-list-alt
4
+ = t( '.back' )
5
+ = link_to edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: 'btn btn-primary' do
6
+ %span.glyphicon.glyphicon-pencil
7
+ = t( '.edit' )
8
+ %h1= t( '.title' )
9
+
10
+ %dl.dl-horizontal
11
+ <%- for attribute in attributes -%>
12
+ %dt= <%= "t( '." + attribute.name + "')" %> + ' :'
13
+ <% if attribute.type == :references %>
14
+ %dd= @<%= singular_table_name %>.<%= attribute.name %>.name
15
+ <% else %>
16
+ %dd= @<%= singular_table_name %>.<%= attribute.name %>
17
+ <% end %>
18
+ <%- end -%>
@@ -0,0 +1,5 @@
1
+ .page-header
2
+ h1
3
+ | <%= class_name %>#<%= @action %>
4
+ p
5
+ | Find me in <%= @path %>
@@ -0,0 +1,12 @@
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
9
+ | Editing
10
+ | <%= singular_table_name %>
11
+
12
+ = render 'form'
@@ -0,0 +1,31 @@
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
6
+ | Listing <%= plural_table_name %>
7
+
8
+ .table-responsive
9
+ table.table.table-striped.table-bordered.table-hover
10
+ thead
11
+ tr
12
+ <%- for attribute in attributes -%>
13
+ th
14
+ | <%= attribute.human_name %>
15
+ <%- end -%>
16
+ th
17
+ th
18
+ th
19
+ tbody
20
+ - @<%= plural_table_name %>.each do | <%= singular_table_name %> |
21
+ tr
22
+ <%- for attribute in attributes -%>
23
+ td
24
+ = <%= singular_table_name %>.<%= attribute.name %>
25
+ <%- end -%>
26
+ td
27
+ = link_to 'Show', <%= singular_table_name %>
28
+ td
29
+ = link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
30
+ td
31
+ = link_to 'Destroy', <%= singular_table_name %>, method: :delete, data: { confirm: 'Are you sure?' }
@@ -0,0 +1,9 @@
1
+ .page-header
2
+ = link_to <%= index_helper %>_path, class: 'btn btn-default' do
3
+ span.glyphicon.glyphicon-list-alt
4
+ | Back
5
+ h1
6
+ | New
7
+ | <%= singular_table_name %>
8
+
9
+ = render 'form'