toronto 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.travis.yml +8 -0
- data/Gemfile +28 -0
- data/MIT-LICENSE +20 -0
- data/README.md +179 -0
- data/Rakefile +147 -0
- data/lib/generators/toronto/install/install_generator.rb +68 -0
- data/lib/generators/toronto/install/templates/assets/stylesheets/bootstrap-variables.less +861 -0
- data/lib/generators/toronto/install/templates/assets/stylesheets/bootstrap-variables.scss +866 -0
- data/lib/generators/toronto/install/templates/assets/stylesheets/starter.css +22 -0
- data/lib/generators/toronto/install/templates/assets/stylesheets/starter.less +23 -0
- data/lib/generators/toronto/install/templates/assets/stylesheets/starter.scss +23 -0
- data/lib/generators/toronto/install/templates/config/initializers/locales.rb +4 -0
- data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.erb +39 -0
- data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.haml +26 -0
- data/lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.slim +21 -0
- data/lib/generators/toronto/install/templates/helpers/menu_helper.rb +7 -0
- data/lib/generators/toronto/install/templates/layouts/starter.html.erb +57 -0
- data/lib/generators/toronto/install/templates/layouts/starter.html.haml +48 -0
- data/lib/generators/toronto/install/templates/layouts/starter.html.slim +53 -0
- data/lib/generators/toronto/install/templates/lib/rails/generators/haml/scaffold/scaffold_generator.rb +51 -0
- data/lib/generators/toronto/install/templates/lib/templates/erb/controller/view.html.erb +4 -0
- data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/edit.html.erb +13 -0
- data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/index.html.erb +33 -0
- data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/new.html.erb +9 -0
- data/lib/generators/toronto/install/templates/lib/templates/erb/scaffold/show.html.erb +19 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/controller/view.html.haml +3 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/edit.html.haml +10 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/en.yml +23 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/fr.yml +23 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/index.html.haml +30 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/new.html.haml +7 -0
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/show.html.haml +18 -0
- data/lib/generators/toronto/install/templates/lib/templates/slim/controller/view.html.slim +5 -0
- data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/edit.html.slim +12 -0
- data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/index.html.slim +31 -0
- data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/new.html.slim +9 -0
- data/lib/generators/toronto/install/templates/lib/templates/slim/scaffold/show.html.slim +16 -0
- data/lib/toronto/version.rb +3 -0
- data/lib/toronto.rb +22 -0
- data/readme-template.md.erb +163 -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/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 +39 -0
- data/test/dummy/config.ru +4 -0
- data/test/generators/bootstrap/install_generator_test.rb +104 -0
- data/test/test_helper.rb +7 -0
- data/toronto.gemspec +30 -0
- data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
- data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/vendor/assets/javascripts/bootstrap/affix.js +162 -0
- data/vendor/assets/javascripts/bootstrap/alert.js +94 -0
- data/vendor/assets/javascripts/bootstrap/button.js +116 -0
- data/vendor/assets/javascripts/bootstrap/carousel.js +237 -0
- data/vendor/assets/javascripts/bootstrap/collapse.js +211 -0
- data/vendor/assets/javascripts/bootstrap/dropdown.js +161 -0
- data/vendor/assets/javascripts/bootstrap/modal.js +339 -0
- data/vendor/assets/javascripts/bootstrap/popover.js +108 -0
- data/vendor/assets/javascripts/bootstrap/scrollspy.js +172 -0
- data/vendor/assets/javascripts/bootstrap/tab.js +153 -0
- data/vendor/assets/javascripts/bootstrap/tooltip.js +476 -0
- data/vendor/assets/javascripts/bootstrap/transition.js +59 -0
- data/vendor/assets/javascripts/bootstrap.js +12 -0
- data/vendor/assets/stylesheets/bootstrap.css.erb +6584 -0
- data/vendor/assets/stylesheets/bootstrap.css.map +1 -0
- data/vendor/twitter/bootstrap/less/alerts.less +73 -0
- data/vendor/twitter/bootstrap/less/badges.less +66 -0
- data/vendor/twitter/bootstrap/less/bootstrap.less +50 -0
- data/vendor/twitter/bootstrap/less/breadcrumbs.less +26 -0
- data/vendor/twitter/bootstrap/less/button-groups.less +243 -0
- data/vendor/twitter/bootstrap/less/buttons.less +160 -0
- data/vendor/twitter/bootstrap/less/carousel.less +269 -0
- data/vendor/twitter/bootstrap/less/close.less +34 -0
- data/vendor/twitter/bootstrap/less/code.less +69 -0
- data/vendor/twitter/bootstrap/less/component-animations.less +33 -0
- data/vendor/twitter/bootstrap/less/dropdowns.less +214 -0
- data/vendor/twitter/bootstrap/less/forms.less +574 -0
- data/vendor/twitter/bootstrap/less/glyphicons.less +305 -0
- data/vendor/twitter/bootstrap/less/grid.less +84 -0
- data/vendor/twitter/bootstrap/less/input-groups.less +166 -0
- data/vendor/twitter/bootstrap/less/jumbotron.less +50 -0
- data/vendor/twitter/bootstrap/less/labels.less +64 -0
- data/vendor/twitter/bootstrap/less/list-group.less +124 -0
- data/vendor/twitter/bootstrap/less/media.less +61 -0
- data/vendor/twitter/bootstrap/less/mixins/alerts.less +14 -0
- data/vendor/twitter/bootstrap/less/mixins/background-variant.less +8 -0
- data/vendor/twitter/bootstrap/less/mixins/border-radius.less +18 -0
- data/vendor/twitter/bootstrap/less/mixins/buttons.less +52 -0
- data/vendor/twitter/bootstrap/less/mixins/center-block.less +7 -0
- data/vendor/twitter/bootstrap/less/mixins/clearfix.less +22 -0
- data/vendor/twitter/bootstrap/less/mixins/forms.less +85 -0
- data/vendor/twitter/bootstrap/less/mixins/gradients.less +59 -0
- data/vendor/twitter/bootstrap/less/mixins/grid-framework.less +91 -0
- data/vendor/twitter/bootstrap/less/mixins/grid.less +122 -0
- data/vendor/twitter/bootstrap/less/mixins/hide-text.less +21 -0
- data/vendor/twitter/bootstrap/less/mixins/image.less +33 -0
- data/vendor/twitter/bootstrap/less/mixins/labels.less +12 -0
- data/vendor/twitter/bootstrap/less/mixins/list-group.less +29 -0
- data/vendor/twitter/bootstrap/less/mixins/nav-divider.less +10 -0
- data/vendor/twitter/bootstrap/less/mixins/nav-vertical-align.less +9 -0
- data/vendor/twitter/bootstrap/less/mixins/opacity.less +8 -0
- data/vendor/twitter/bootstrap/less/mixins/pagination.less +23 -0
- data/vendor/twitter/bootstrap/less/mixins/panels.less +24 -0
- data/vendor/twitter/bootstrap/less/mixins/progress-bar.less +10 -0
- data/vendor/twitter/bootstrap/less/mixins/reset-filter.less +8 -0
- data/vendor/twitter/bootstrap/less/mixins/resize.less +6 -0
- data/vendor/twitter/bootstrap/less/mixins/responsive-visibility.less +15 -0
- data/vendor/twitter/bootstrap/less/mixins/size.less +10 -0
- data/vendor/twitter/bootstrap/less/mixins/tab-focus.less +9 -0
- data/vendor/twitter/bootstrap/less/mixins/table-row.less +28 -0
- data/vendor/twitter/bootstrap/less/mixins/text-emphasis.less +8 -0
- data/vendor/twitter/bootstrap/less/mixins/text-overflow.less +8 -0
- data/vendor/twitter/bootstrap/less/mixins/vendor-prefixes.less +227 -0
- data/vendor/twitter/bootstrap/less/mixins.less +39 -0
- data/vendor/twitter/bootstrap/less/modals.less +150 -0
- data/vendor/twitter/bootstrap/less/navbar.less +660 -0
- data/vendor/twitter/bootstrap/less/navs.less +242 -0
- data/vendor/twitter/bootstrap/less/normalize.less +427 -0
- data/vendor/twitter/bootstrap/less/pager.less +54 -0
- data/vendor/twitter/bootstrap/less/pagination.less +88 -0
- data/vendor/twitter/bootstrap/less/panels.less +265 -0
- data/vendor/twitter/bootstrap/less/popovers.less +135 -0
- data/vendor/twitter/bootstrap/less/print.less +107 -0
- data/vendor/twitter/bootstrap/less/progress-bars.less +87 -0
- data/vendor/twitter/bootstrap/less/responsive-embed.less +35 -0
- data/vendor/twitter/bootstrap/less/responsive-utilities.less +194 -0
- data/vendor/twitter/bootstrap/less/scaffolding.less +162 -0
- data/vendor/twitter/bootstrap/less/tables.less +234 -0
- data/vendor/twitter/bootstrap/less/theme.less +273 -0
- data/vendor/twitter/bootstrap/less/thumbnails.less +36 -0
- data/vendor/twitter/bootstrap/less/tooltip.less +102 -0
- data/vendor/twitter/bootstrap/less/type.less +302 -0
- data/vendor/twitter/bootstrap/less/utilities.less +55 -0
- data/vendor/twitter/bootstrap/less/variables.less +861 -0
- data/vendor/twitter/bootstrap/less/wells.less +29 -0
- data/vendor/twitter/bootstrap/sass/_bootstrap-compass.scss +9 -0
- data/vendor/twitter/bootstrap/sass/_bootstrap-mincer.scss +19 -0
- data/vendor/twitter/bootstrap/sass/_bootstrap-sprockets.scss +9 -0
- data/vendor/twitter/bootstrap/sass/_bootstrap.scss +50 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_alerts.scss +73 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_badges.scss +68 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_breadcrumbs.scss +26 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_button-groups.scss +243 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_buttons.scss +160 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_carousel.scss +269 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_close.scss +36 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_code.scss +69 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_component-animations.scss +37 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_dropdowns.scss +214 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_forms.scss +578 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_glyphicons.scss +305 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_grid.scss +84 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_input-groups.scss +166 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_jumbotron.scss +50 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_labels.scss +66 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_list-group.scss +124 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_media.scss +61 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_mixins.scss +39 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_modals.scss +150 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_navbar.scss +662 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_navs.scss +242 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_normalize.scss +427 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_pager.scss +54 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_pagination.scss +88 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_panels.scss +265 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_popovers.scss +135 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_print.scss +107 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_progress-bars.scss +87 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_responsive-embed.scss +35 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_responsive-utilities.scss +177 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_scaffolding.scss +162 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_tables.scss +234 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_theme.scss +273 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_thumbnails.scss +38 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_tooltip.scss +102 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_type.scss +298 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_utilities.scss +55 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_variables.scss +866 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/_wells.scss +29 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_alerts.scss +14 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_background-variant.scss +11 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_border-radius.scss +18 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_buttons.scss +52 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_center-block.scss +7 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_clearfix.scss +22 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_forms.scss +88 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_gradients.scss +58 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_grid-framework.scss +81 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_grid.scss +122 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_hide-text.scss +21 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_image.scss +33 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_labels.scss +12 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_list-group.scss +31 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_nav-divider.scss +10 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_opacity.scss +8 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_pagination.scss +23 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_panels.scss +24 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_progress-bar.scss +10 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_reset-filter.scss +8 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_resize.scss +6 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_size.scss +10 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_tab-focus.scss +9 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_table-row.scss +28 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_text-emphasis.scss +11 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_text-overflow.scss +8 -0
- data/vendor/twitter/bootstrap/sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
- 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
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
|