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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a84c6e2526c44dcde56e8de5dd852fe1785ec824
4
+ data.tar.gz: e4f86445fcf2b0b43e7839a037110cb953b9b0e1
5
+ SHA512:
6
+ metadata.gz: d41370266cd3dcd58db7ea25c35f35f1b40264b6385587575ef086f7be0bb6a69145f6bb6bca7ccac020d65fc40f16939d7f7661f02d186f08df6dfbec047e17
7
+ data.tar.gz: b5967ea9c2b72d5da166ee8b07e0e14c6ba948580a6f5035e4b75dc27af6c0f0d9d737767e1bed4146d4d30e21b0c4601d7c9586354d5bbaf1547bd95587b512
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/dummy/db/*.sqlite3
16
+ test/dummy/log/*.log
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
20
+
21
+ .idea
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ env:
5
+ - "RAILS_VERSION=3.1.12"
6
+ - "RAILS_VERSION=3.2.19"
7
+ - "RAILS_VERSION=4.0.10"
8
+ - "RAILS_VERSION=4.1.6"
data/Gemfile ADDED
@@ -0,0 +1,28 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in bootstrap_generators.gemspec
4
+ gemspec
5
+
6
+ # Dummy application
7
+ rails_version = ENV["RAILS_VERSION"] || "default"
8
+ case rails_version
9
+ when "master"
10
+ rails = { github: "rails/rails" }
11
+ gem 'sass-rails', '>= 4.0.2'
12
+ when "default"
13
+ rails = ">= 3.1.0"
14
+ gem 'sass-rails'
15
+ else
16
+ rails = "~> #{rails_version}"
17
+
18
+ if rails_version[0] == '4'
19
+ gem 'sass-rails', '>= 4.0.2'
20
+ else
21
+ gem 'sass-rails'
22
+ end
23
+ end
24
+
25
+ gem 'rails', rails
26
+ gem 'uglifier'
27
+
28
+ # gem 'haml-rails', '>= 0.9.0'
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2013 Décio Ferreira
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,179 @@
1
+ # Bootstrap Generators
2
+
3
+ This is a fork from https://github.com/decioferreira/bootstrap-generators
4
+
5
+ * All fields are translated
6
+
7
+ *Caution* : it only work for haml
8
+
9
+ ## Current Twitter Bootstrap version
10
+
11
+ The current supported version of Twitter Bootstrap is 3.3.4.
12
+
13
+ ## Installing Gem
14
+
15
+ In your Gemfile, add this line:
16
+
17
+ gem 'toronto'
18
+
19
+ Or you can install from latest build:
20
+
21
+ gem 'bootstrap-generators', git: 'git://github.com/decioferreira/bootstrap-generators.git'
22
+
23
+ Run bundle install:
24
+
25
+ bundle install
26
+
27
+ ## Generators
28
+
29
+ Get started:
30
+
31
+ rails generate bootstrap:install
32
+
33
+ To overwrite files that already exist, pass the `--force` (`-f`) option.
34
+
35
+ Once you've done that, any time you generate a controller or scaffold, you'll get [Bootstrap](http://twitter.github.com/bootstrap/) templates.
36
+
37
+ ### Give it a try
38
+
39
+ In Rails >= 4.1 you need to run `spring stop` so than Rails preloader knows about new templates.
40
+
41
+ rails generate scaffold post title body:text published:boolean
42
+
43
+ You can easily customize colors, grid system, fonts, and much more by editing `bootstrap-variables.[less|scss]` on your application assets folder.
44
+
45
+ ## Usage
46
+
47
+ To print the options and usage run the command `rails generate bootstrap:install --help`
48
+
49
+ Usage:
50
+ rails generate bootstrap:install [options]
51
+
52
+ Options:
53
+ -e, [--template-engine=TEMPLATE_ENGINE] # Indicates when to generate template engine
54
+ # Default: erb
55
+ -se, [--stylesheet-engine=STYLESHEET_ENGINE] # Indicates when to generate stylesheet engine
56
+ # Default: scss
57
+ [--skip-turbolinks], [--no-skip-turbolinks] # Indicates when to generate skip turbolinks
58
+
59
+ Runtime options:
60
+ -f, [--force] # Overwrite files that already exist
61
+ -p, [--pretend], [--no-pretend] # Run but do not make any changes
62
+ -q, [--quiet], [--no-quiet] # Suppress status output
63
+ -s, [--skip], [--no-skip] # Skip files that already exist
64
+
65
+ Copy BootstrapGenerators default files
66
+
67
+ ### Options
68
+
69
+ #### Template engines
70
+
71
+ Supported template engines:
72
+
73
+ * ERB
74
+ * Haml
75
+ * Slim
76
+
77
+ ##### Haml
78
+
79
+ Add the dependency on your Gemfile:
80
+
81
+ gem 'haml-rails'
82
+
83
+ And then run:
84
+
85
+ rails generate bootstrap:install --template-engine=haml
86
+
87
+ ##### Slim
88
+
89
+ Add the dependency on your Gemfile:
90
+
91
+ gem 'slim-rails'
92
+
93
+ And then run:
94
+
95
+ rails generate bootstrap:install --template-engine=slim
96
+
97
+
98
+ #### Stylesheet engines
99
+
100
+ Supported stylesheet engines:
101
+
102
+ * CSS
103
+ * SCSS
104
+ * LESS
105
+
106
+ ##### SCSS
107
+
108
+ Make sure you have `sass-rails` dependency on your Gemfile:
109
+
110
+ gem 'sass-rails'
111
+
112
+ And then run:
113
+
114
+ rails generate bootstrap:install --stylesheet-engine=scss
115
+
116
+ Now you can customize the look and feel of Bootstrap.
117
+
118
+ ##### LESS
119
+
120
+ Add the dependency on your Gemfile:
121
+
122
+ gem 'therubyracer', platforms: :ruby
123
+ gem 'less-rails'
124
+
125
+ And then run:
126
+
127
+ rails generate bootstrap:install --stylesheet-engine=less
128
+
129
+ Now you can customize the look and feel of Bootstrap.
130
+
131
+ #### Skip turbolinks
132
+
133
+ Run the generator with option `--skip-turbolinks` to remove turbolinks references from the generated layout.
134
+
135
+ ## Assets
136
+
137
+ ### Customize and extend Bootstrap
138
+
139
+ If you select LESS or SCSS as your stylesheet engine, you will get an `app/assets/stylesheets/bootstrap-variables.[less|scss]` file with all of the default variables of Bootstrap. This way you can customize the look and feel of Bootstrap without having to download any extra file.
140
+
141
+ ### Javascript
142
+
143
+ Select all jQuery plugins (`app/assets/javascripts/bootstrap.js`)
144
+
145
+ //= require bootstrap
146
+
147
+ Or quickly add only the necessary javascript (Transitions: required for any animation; Popovers: requires Tooltips)
148
+
149
+ //= require bootstrap/collapse
150
+ //= require bootstrap/modal
151
+ //= require bootstrap/button
152
+ //= require bootstrap/affix
153
+ //= require bootstrap/tab
154
+ //= require bootstrap/alert
155
+ //= require bootstrap/transition
156
+ //= require bootstrap/tooltip
157
+ //= require bootstrap/popover
158
+ //= require bootstrap/scrollspy
159
+ //= require bootstrap/dropdown
160
+ //= require bootstrap/carousel
161
+
162
+
163
+ ## Customizing Templates
164
+
165
+ In Rails 3.0 and above, generators don’t just look in the source root for templates, they also search for templates in other paths. And one of them is lib/templates.
166
+
167
+ Since Bootstrap Generators installs its templates under lib/templates, you can go and customize them.
168
+
169
+ ## Update Bootstrap Version
170
+
171
+ To update the version of Bootstrap on this Gem you can run the following command:
172
+
173
+ rake bootstrap:update
174
+
175
+ There might be some manual changes needed after running this command. But most of the process is automatic.
176
+
177
+ ## Credits
178
+
179
+ * [Twitter Bootstrap](http://getbootstrap.com)
data/Rakefile ADDED
@@ -0,0 +1,147 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'lib'
6
+ t.libs << 'test'
7
+ t.pattern = 'test/**/*_test.rb'
8
+ t.verbose = false
9
+ end
10
+
11
+ task default: :test
12
+
13
+ namespace :toronto do
14
+ desc "Update to a new version of Twitter Bootstrap"
15
+ task :update do
16
+ bootstrap_version = "3.3.4"
17
+ striped_bootstrap_generators_version = "3.3.4"
18
+
19
+ twitter_latest_dist_zip_url = "https://github.com/twbs/bootstrap/archive/v#{bootstrap_version}.zip"
20
+ twitter_sass_lastest_dist_zip_url = "https://github.com/twbs/bootstrap-sass/archive/v#{bootstrap_version}.zip"
21
+ twitter_bootstrap_dir = "tmp/bootstrap-#{bootstrap_version}"
22
+ twitter_sass_bootstrap_dir = "tmp/bootstrap-sass-#{bootstrap_version}"
23
+
24
+ # Make sure tmp/ dir exists
25
+ Dir.mkdir('tmp') unless File.exists?('tmp')
26
+
27
+ if File.exists?(twitter_bootstrap_dir)
28
+ puts "Twitter Bootstrap already downloaded."
29
+ else
30
+ # Download the latest version of Twitter Bootstrap
31
+ `wget -O tmp/bootstrap.zip #{twitter_latest_dist_zip_url}`
32
+
33
+ # Extract Twitter Bootstrap
34
+ `unzip -d tmp tmp/bootstrap.zip`
35
+ end
36
+
37
+ if File.exists?(twitter_sass_bootstrap_dir)
38
+ puts "Twitter Bootstrap Sass already downloaded."
39
+ else
40
+ # Download the latest version of Twitter Bootstrap Sass
41
+ `wget -O tmp/sass-bootstrap.zip #{twitter_sass_lastest_dist_zip_url}`
42
+
43
+ # Extract Twitter Bootstrap
44
+ `unzip -d tmp tmp/sass-bootstrap.zip`
45
+ end
46
+
47
+ # Reset Twitter Bootstrap JS files
48
+ bootstrap_javascript_dir = 'vendor/assets/javascripts/bootstrap'
49
+ bootstrap_main_javascript = 'vendor/assets/javascripts/bootstrap.js'
50
+
51
+ FileUtils.rm Dir.glob("#{bootstrap_javascript_dir}/*.js")
52
+ FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/js/*.js"), bootstrap_javascript_dir
53
+
54
+ # Rewrite base bootstrap.js
55
+ require_files = []
56
+ Dir.glob("#{bootstrap_javascript_dir}/*.js") do |js_file|
57
+ require_files << File.basename(js_file, '.*')
58
+ end
59
+
60
+ # Reset Twitter Bootstrap Fonts
61
+ bootstrap_fonts_dir = 'vendor/assets/fonts/bootstrap'
62
+
63
+ FileUtils.rm Dir.glob("#{bootstrap_fonts_dir}/*")
64
+ FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/fonts/*"), bootstrap_fonts_dir
65
+
66
+ # Reset Twitter Bootstrap CSS file
67
+ FileUtils.cp "#{twitter_bootstrap_dir}/dist/css/bootstrap.css", "vendor/assets/stylesheets/bootstrap.css.erb"
68
+ FileUtils.cp "#{twitter_bootstrap_dir}/dist/css/bootstrap.css.map", "vendor/assets/stylesheets/bootstrap.css.map"
69
+
70
+ # Reset Twitter Bootstrap LESS files
71
+ bootstrap_less_dir = 'vendor/twitter/bootstrap/less'
72
+
73
+ FileUtils.rm Dir.glob("#{bootstrap_less_dir}/**/*.less")
74
+ FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/less/*.less"), bootstrap_less_dir
75
+ FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/less/mixins/*.less"), "#{bootstrap_less_dir}/mixins"
76
+
77
+ # Reset Twitter Bootstrap SASS files
78
+ bootstrap_sass_dir = 'vendor/twitter/bootstrap/sass'
79
+
80
+ FileUtils.rm Dir.glob("#{bootstrap_sass_dir}/**/*.scss")
81
+ FileUtils.cp Dir.glob("#{twitter_sass_bootstrap_dir}/assets/stylesheets/*.scss"), bootstrap_sass_dir
82
+ FileUtils.cp Dir.glob("#{twitter_sass_bootstrap_dir}/assets/stylesheets/bootstrap/*.scss"), "#{bootstrap_sass_dir}/bootstrap"
83
+ FileUtils.cp Dir.glob("#{twitter_sass_bootstrap_dir}/assets/stylesheets/bootstrap/mixins/*.scss"), "#{bootstrap_sass_dir}/bootstrap/mixins"
84
+
85
+ # Copy bootstrap variables
86
+ FileUtils.cp "#{bootstrap_less_dir}/variables.less", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.less"
87
+ FileUtils.cp "#{bootstrap_sass_dir}/bootstrap/_variables.scss", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.scss"
88
+
89
+ # Asset helpers
90
+ Dir.glob('**/*.css.erb').each do |filepath|
91
+ file_content = File.read(filepath)
92
+
93
+ # Remove fonts path
94
+ file_content.gsub!("../fonts/", "bootstrap/")
95
+
96
+ # Asset helpers for fonts
97
+ file_content.gsub!(%r{(["'][\w\-@{}$#\/]+\.(eot|woff|ttf|svg)["'])}, '\'<%= font_path(\1) %>\'')
98
+ file_content.gsub!(%r{(["'])([\w\-@{}$#\/]+\.(eot|woff|ttf|svg))(\??#[\w\-@{}$#]+["'])}, '\'<%= font_path(\1\2\1) %>\4')
99
+
100
+ File.open(filepath, 'w') { |file| file.puts file_content }
101
+ end
102
+
103
+ Dir.glob('**/*.scss').each do |filepath|
104
+ file_content = File.read(filepath)
105
+
106
+ # Remove fonts path
107
+ file_content.gsub!("../fonts/", "")
108
+
109
+ # Asset helpers for fonts
110
+ file_content.gsub!(%r{(["'\w\-@{}$#\/]+\.(eot|woff|ttf|svg)(\??#[\w\-@{}$#]+)?["'])}, '\1')
111
+
112
+ # Asset helpers for images
113
+ file_content.gsub!(%r{image: url\(}, 'image: image-url(')
114
+
115
+ File.open(filepath, 'w') { |file| file.puts file_content }
116
+ end
117
+
118
+ Dir.glob('**/*.less').each do |filepath|
119
+ file_content = File.read(filepath)
120
+
121
+ # Remove fonts path
122
+ file_content.gsub!("../fonts/", "bootstrap/")
123
+
124
+ # Asset helpers for fonts
125
+ file_content.gsub!(%r{~"url\(([^)]+)\)( [^"]*)?"}, 'font-url(~"\1")\2')
126
+
127
+ # Asset helpers for images
128
+ file_content.gsub!(%r{image: url\(}, 'image: image-url(')
129
+
130
+ File.open(filepath, 'w') { |file| file.puts file_content }
131
+ end
132
+
133
+ # Generate README.md
134
+ require 'erb'
135
+
136
+ javascript_bootstrap_content_code = ""
137
+ File.open(bootstrap_main_javascript, 'r').each_line do |line|
138
+ javascript_bootstrap_content_code += " #{line}"
139
+ end
140
+
141
+ template = ERB.new File.read("readme-template.md.erb")
142
+
143
+ File.open('README.md', 'w') do |file|
144
+ file.write(template.result(binding))
145
+ end
146
+ end
147
+ end
@@ -0,0 +1,68 @@
1
+ require 'rails/generators'
2
+
3
+ module Toronto
4
+
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+ desc 'Copy BootstrapGenerators default files'
7
+ source_root ::File.expand_path('../templates', __FILE__)
8
+
9
+ class_option :template_engine
10
+ class_option :stylesheet_engine
11
+ class_option :skip_turbolinks, type: :boolean, default: false, desc: "Skip Turbolinks on assets"
12
+
13
+ def copy_scaffold_generator
14
+ directory 'lib/rails'
15
+ end
16
+
17
+ def copy_locale_file
18
+ copy_file 'config/initializers/locales.rb', 'config/initializers/locales.rb'
19
+ end
20
+
21
+ def copy_lib
22
+ directory "lib/templates/#{options[:template_engine]}"
23
+ end
24
+
25
+ def copy_form_builder
26
+ copy_file "form_builders/form_builder/_form.html.#{options[:template_engine]}", "lib/templates/#{options[:template_engine]}/scaffold/_form.html.#{options[:template_engine]}"
27
+ end
28
+
29
+ def create_layout
30
+ template "layouts/starter.html.#{options[:template_engine]}", "app/views/layouts/application.html.#{options[:template_engine]}"
31
+ end
32
+
33
+ def create_stylesheets
34
+ stylesheet_extension = options[:stylesheet_engine] || 'css'
35
+
36
+ copy_file "assets/stylesheets/starter.#{stylesheet_extension}", "app/assets/stylesheets/bootstrap-generators.#{stylesheet_extension}"
37
+
38
+ if [:less, :scss].include?(options[:stylesheet_engine].to_sym)
39
+ copy_file "assets/stylesheets/bootstrap-variables.#{stylesheet_extension}", "app/assets/stylesheets/bootstrap-variables.#{stylesheet_extension}"
40
+ end
41
+ end
42
+
43
+ def inject_menu_helper
44
+ data = %{
45
+ def nav_link(link_text, link_path)
46
+ class_name = current_page?(link_path) ? 'active' : ''
47
+
48
+ content_tag(:li, :class => class_name) do
49
+ link_to link_text, link_path
50
+ end
51
+ end
52
+
53
+ }
54
+ insert_into_file 'app/helpers/application_helper.rb', data, :before => /^end/
55
+ end
56
+
57
+ def inject_backbone
58
+ application_js_path = 'app/assets/javascripts/application.js'
59
+
60
+ if ::File.exists?(::File.join(destination_root, application_js_path))
61
+ inject_into_file application_js_path, before: '//= require_tree' do
62
+ "//= require bootstrap\n"
63
+ end
64
+ end
65
+ end
66
+ end
67
+
68
+ end