bootstrap-generators 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. data/.gitignore +1 -0
  2. data/bootstrap-generators.gemspec +4 -2
  3. data/lib/bootstrap-generators.rb +31 -3
  4. data/lib/bootstrap-generators/engine.rb +6 -0
  5. data/lib/bootstrap-generators/version.rb +1 -1
  6. data/lib/generators/erubis.rb +10 -0
  7. data/lib/generators/{erb → erubis}/controller/controller_generator.rb +3 -3
  8. data/lib/generators/erubis/controller/templates/view.html.erb +3 -0
  9. data/lib/generators/{erb → erubis}/scaffold/scaffold_generator.rb +3 -4
  10. data/lib/generators/erubis/scaffold/templates/_form.html.erb +24 -0
  11. data/lib/generators/erubis/scaffold/templates/edit.html.erb +9 -0
  12. data/lib/generators/erubis/scaffold/templates/index.html.erb +31 -0
  13. data/lib/generators/erubis/scaffold/templates/new.html.erb +8 -0
  14. data/lib/generators/erubis/scaffold/templates/show.html.erb +13 -0
  15. data/lib/generators/layout/application.html.erb +42 -0
  16. data/lib/generators/layout/bootstrap-layout.css +3 -0
  17. data/test/lib/generators/{erb → erubis}/controller_generator_test.rb +2 -2
  18. data/test/lib/generators/{erb → erubis}/scaffold_generator_test.rb +3 -3
  19. data/test/test_helper.rb +1 -1
  20. data/vendor/assets/javascripts/bootstrap-alerts.js +111 -0
  21. data/vendor/assets/javascripts/bootstrap-dropdown.js +53 -0
  22. data/vendor/assets/javascripts/bootstrap-modal.js +244 -0
  23. data/vendor/assets/javascripts/bootstrap-popover.js +77 -0
  24. data/vendor/assets/javascripts/bootstrap-scrollspy.js +105 -0
  25. data/vendor/assets/javascripts/bootstrap-tabs.js +77 -0
  26. data/vendor/assets/javascripts/bootstrap-twipsy.js +303 -0
  27. data/vendor/assets/stylesheets/bootstrap.css +2363 -0
  28. data/vendor/assets/stylesheets/bootstrap.min.css +330 -0
  29. metadata +56 -22
  30. data/lib/generators/erb.rb +0 -10
  31. data/lib/generators/erb/controller/templates/view.html.erb +0 -1
  32. data/lib/generators/erb/scaffold/templates/_form.html.erb +0 -1
  33. data/lib/generators/erb/scaffold/templates/edit.html.erb +0 -1
  34. data/lib/generators/erb/scaffold/templates/index.html.erb +0 -1
  35. data/lib/generators/erb/scaffold/templates/new.html.erb +0 -1
  36. data/lib/generators/erb/scaffold/templates/show.html.erb +0 -1
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  tmp/
6
+ nbproject/
@@ -22,6 +22,8 @@ Gem::Specification.new do |s|
22
22
  # s.add_development_dependency "rspec"
23
23
  # s.add_runtime_dependency "rest-client"
24
24
 
25
- s.add_dependency 'railties', '~> 3.0'
26
- s.add_development_dependency 'rails', '~> 3.0'
25
+ s.add_dependency "railties", ">= 3.0.0"
26
+ s.add_development_dependency "bundler", ">= 1.0.0"
27
+ s.add_development_dependency "test-unit"
28
+ s.add_development_dependency "rails", ">= 3.0.0"
27
29
  end
@@ -1,9 +1,37 @@
1
+ require 'rails'
1
2
  require 'rails/generators'
2
3
 
3
- module Bootstrap
4
- module Generators; end
4
+ module BootstrapGenerators
5
+ module Rails
6
+ class Railtie < ::Rails::Railtie
7
+ if ::Rails.version.to_f >= 3.1
8
+ # Erubis has the default template engine
9
+ config.app_generators.template_engine :erubis
10
+ config.app_generators.stylesheets false
11
+ require 'bootstrap-generators/engine'
12
+ else
13
+ # Erubis has the default template engine
14
+ config.generators.template_engine :erubis
15
+ end
16
+ end
17
+ end
18
+
19
+ class LayoutGenerator < ::Rails::Generators::Base
20
+ desc "This generator installs Twitter Bootstrap Layout"
21
+ source_root File.expand_path('../generators/layout', __FILE__)
22
+
23
+ def copy_layout
24
+ say_status("copying", "layout", :green)
25
+ copy_file "application.html.erb", "app/views/layouts/application.html.erb"
26
+ end
27
+
28
+ def copy_stylesheet
29
+ say_status("copying", "layout stylesheet", :green)
30
+ copy_file "bootstrap-layout.css", "app/assets/stylesheets/bootstrap-layout.css"
31
+ end
32
+ end
5
33
  end
6
34
 
7
35
  Rails::Generators.hidden_namespaces << 'rails'
8
36
  Rails::Generators.hidden_namespaces << 'erb:controller' << 'erb:scaffold'
9
-
37
+ Rails::Generators.hidden_namespaces << 'erubis:controller' << 'erubis:scaffold'
@@ -0,0 +1,6 @@
1
+ module BootstrapGenerators
2
+ module Rails
3
+ class Engine < ::Rails::Engine; end
4
+ end
5
+ end
6
+
@@ -1,5 +1,5 @@
1
1
  module Bootstrap
2
2
  module Generators
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -0,0 +1,10 @@
1
+ module Erubis
2
+ module Generators
3
+ module TemplatePath
4
+ def source_root
5
+ File.expand_path(File.join(File.dirname(__FILE__), 'erubis', generator_name, 'templates'))
6
+ end
7
+ end
8
+ end
9
+ end
10
+
@@ -1,9 +1,9 @@
1
- require 'generators/erb'
1
+ require 'generators/erubis'
2
2
  require 'rails/generators/erb/controller/controller_generator'
3
3
 
4
- module Erb
4
+ module Erubis
5
5
  module Generators
6
- class ControllerGenerator
6
+ class ControllerGenerator < Erb::Generators::ControllerGenerator
7
7
  extend TemplatePath
8
8
  end
9
9
  end
@@ -0,0 +1,3 @@
1
+ <h1><%= class_name %>#<%= @action %></h1>
2
+ <p>Find me in <%= @path %></p>
3
+
@@ -1,9 +1,9 @@
1
- require 'generators/erb'
1
+ require 'generators/erubis'
2
2
  require 'rails/generators/erb/scaffold/scaffold_generator'
3
3
 
4
- module Erb
4
+ module Erubis
5
5
  module Generators
6
- class ScaffoldGenerator
6
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
7
7
  extend TemplatePath
8
8
 
9
9
  hook_for :form_builder, :as => :scaffold
@@ -22,4 +22,3 @@ module Erb
22
22
  end
23
23
  end
24
24
  end
25
-
@@ -0,0 +1,24 @@
1
+ <%%= form_for(@<%= singular_table_name %>) do |f| %>
2
+ <%% if @<%= singular_table_name %>.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
5
+
6
+ <ul>
7
+ <%% @<%= singular_table_name %>.errors.full_messages.each do |msg| %>
8
+ <li><%%= msg %></li>
9
+ <%% end %>
10
+ </ul>
11
+ </div>
12
+ <%% end %>
13
+
14
+ <% attributes.each do |attribute| -%>
15
+ <div class="field">
16
+ <%%= f.label :<%= attribute.name %> %><br />
17
+ <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
18
+ </div>
19
+ <% end -%>
20
+ <div class="actions">
21
+ <%%= f.submit %>
22
+ </div>
23
+ <%% end %>
24
+
@@ -0,0 +1,9 @@
1
+ <div class="page-header">
2
+ <h1>Editing <%= singular_table_name %></h1>
3
+ </div>
4
+
5
+ <%%= render 'form' %>
6
+
7
+ <%%= link_to 'Show', @<%= singular_table_name %> %> |
8
+ <%%= link_to 'Back', <%= index_helper %>_path %>
9
+
@@ -0,0 +1,31 @@
1
+ <div class="page-header">
2
+ <%%= link_to 'New <%= human_name %>', new_<%= singular_table_name %>_path, :class => 'btn' %>
3
+ <h1>Listing <%= plural_table_name %></h1>
4
+ </div>
5
+
6
+ <table class="zebra-striped">
7
+ <thead>
8
+ <tr>
9
+ <% attributes.each do |attribute| -%>
10
+ <th><%= attribute.human_name %></th>
11
+ <% end -%>
12
+ <th></th>
13
+ <th></th>
14
+ <th></th>
15
+ </tr>
16
+ </thead>
17
+
18
+ <tbody>
19
+ <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
20
+ <tr>
21
+ <% attributes.each do |attribute| -%>
22
+ <td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
23
+ <% end -%>
24
+ <td><%%= link_to 'Show', <%= singular_table_name %> %></td>
25
+ <td><%%= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>) %></td>
26
+ <td><%%= link_to 'Destroy', <%= singular_table_name %>, <%= key_value :confirm, "'Are you sure?'" %>, <%= key_value :method, ":delete" %> %></td>
27
+ </tr>
28
+ <%% end %>
29
+ </tbody>
30
+ </table>
31
+
@@ -0,0 +1,8 @@
1
+ <div class="page-header">
2
+ <h1>New <%= singular_table_name %></h1>
3
+ </div>
4
+
5
+ <%%= render 'form' %>
6
+
7
+ <%%= link_to 'Back', <%= index_helper %>_path %>
8
+
@@ -0,0 +1,13 @@
1
+ <p id="notice"><%%= notice %></p>
2
+
3
+ <% attributes.each do |attribute| -%>
4
+ <p>
5
+ <b><%= attribute.human_name %>:</b>
6
+ <%%= @<%= singular_table_name %>.<%= attribute.name %> %>
7
+ </p>
8
+
9
+ <% end -%>
10
+
11
+ <%%= link_to 'Edit', edit_<%= singular_table_name %>_path(@<%= singular_table_name %>) %> |
12
+ <%%= link_to 'Back', <%= index_helper %>_path %>
13
+
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Bootstrap, from Twitter</title>
6
+ <meta name="description" content="">
7
+ <meta name="author" content="">
8
+
9
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
10
+ <!--[if lt IE 9]>
11
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
12
+ <![endif]-->
13
+
14
+ <%= stylesheet_link_tag "application" %>
15
+ <%= javascript_include_tag "application" %>
16
+ <%= csrf_meta_tags %>
17
+ </head>
18
+ <body>
19
+ <div class="topbar">
20
+ <div class="fill">
21
+ <div class="container">
22
+ <a class="brand" href="#">Project name</a>
23
+ <ul class="nav">
24
+ <li class="active"><a href="#">Home</a></li>
25
+ <li><a href="#about">About</a></li>
26
+ <li><a href="#contact">Contact</a></li>
27
+ </ul>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ <div class="container">
32
+ <div class="row">
33
+ <div class="span16">
34
+ <%= yield %>
35
+ </div>
36
+ </div>
37
+ <footer>
38
+ <p>&copy; Company 2011</p>
39
+ </footer>
40
+ </div>
41
+ </body>
42
+ </html>
@@ -0,0 +1,3 @@
1
+ body {
2
+ padding-top: 60px;
3
+ }
@@ -1,9 +1,9 @@
1
1
  require 'test_helper'
2
2
 
3
- class Erb::Generators::ControllerGeneratorTest < Rails::Generators::TestCase
3
+ class Erubis::Generators::ControllerGeneratorTest < Rails::Generators::TestCase
4
4
  destination File.join(Rails.root)
5
5
  tests Rails::Generators::ControllerGenerator
6
- arguments %w(Account foo bar --template-engine erb)
6
+ arguments %w(Account foo bar --template-engine erubis)
7
7
 
8
8
  setup :prepare_destination
9
9
  setup :copy_routes
@@ -1,9 +1,9 @@
1
1
  require 'test_helper'
2
2
 
3
- class Erb::Generators::ScaffoldGeneratorTest < Rails::Generators::TestCase
3
+ class Erubis::Generators::ScaffoldGeneratorTest < Rails::Generators::TestCase
4
4
  destination File.join(Rails.root)
5
5
  tests Rails::Generators::ScaffoldGenerator
6
- arguments %w(product_line title:string price:integer --template-engine erb)
6
+ arguments %w(product_line title:string price:integer --template-engine erubis)
7
7
 
8
8
  setup :prepare_destination
9
9
  setup :copy_routes
@@ -24,7 +24,7 @@ class Erb::Generators::ScaffoldGeneratorTest < Rails::Generators::TestCase
24
24
  end
25
25
 
26
26
  test "should invoke form builder" do
27
- run_generator %w(product_line title:string price:integer --template-engine erb --form-builder some-form-builder)
27
+ run_generator %w(product_line title:string price:integer --template-engine erubis --form-builder some-form-builder)
28
28
  assert_no_file "app/views/product_lines/_form.html.erb"
29
29
  end
30
30
  end
data/test/test_helper.rb CHANGED
@@ -48,7 +48,7 @@ end
48
48
  def generator_list
49
49
  {
50
50
  :rails => ['scaffold', 'controller'],
51
- :erb => ['scaffold'],
51
+ :erubis => ['scaffold']
52
52
  }
53
53
  end
54
54
 
@@ -0,0 +1,111 @@
1
+ /* ==========================================================
2
+ * bootstrap-alerts.js v1.3.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#alerts
4
+ * ==========================================================
5
+ * Copyright 2011 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ========================================================== */
19
+
20
+
21
+ !function( $ ){
22
+
23
+ /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
24
+ * ======================================================= */
25
+
26
+ var transitionEnd
27
+
28
+ $(document).ready(function () {
29
+
30
+ $.support.transition = (function () {
31
+ var thisBody = document.body || document.documentElement
32
+ , thisStyle = thisBody.style
33
+ , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
34
+ return support
35
+ })()
36
+
37
+ // set CSS transition event type
38
+ if ( $.support.transition ) {
39
+ transitionEnd = "TransitionEnd"
40
+ if ( $.browser.webkit ) {
41
+ transitionEnd = "webkitTransitionEnd"
42
+ } else if ( $.browser.mozilla ) {
43
+ transitionEnd = "transitionend"
44
+ } else if ( $.browser.opera ) {
45
+ transitionEnd = "oTransitionEnd"
46
+ }
47
+ }
48
+
49
+ })
50
+
51
+ /* ALERT CLASS DEFINITION
52
+ * ====================== */
53
+
54
+ var Alert = function ( content, options ) {
55
+ this.settings = $.extend({}, $.fn.alert.defaults, options)
56
+ this.$element = $(content)
57
+ .delegate(this.settings.selector, 'click', this.close)
58
+ }
59
+
60
+ Alert.prototype = {
61
+
62
+ close: function (e) {
63
+ var $element = $(this).parent('.alert-message')
64
+
65
+ e && e.preventDefault()
66
+ $element.removeClass('in')
67
+
68
+ function removeElement () {
69
+ $element.remove()
70
+ }
71
+
72
+ $.support.transition && $element.hasClass('fade') ?
73
+ $element.bind(transitionEnd, removeElement) :
74
+ removeElement()
75
+ }
76
+
77
+ }
78
+
79
+
80
+ /* ALERT PLUGIN DEFINITION
81
+ * ======================= */
82
+
83
+ $.fn.alert = function ( options ) {
84
+
85
+ if ( options === true ) {
86
+ return this.data('alert')
87
+ }
88
+
89
+ return this.each(function () {
90
+ var $this = $(this)
91
+
92
+ if ( typeof options == 'string' ) {
93
+ return $this.data('alert')[options]()
94
+ }
95
+
96
+ $(this).data('alert', new Alert( this, options ))
97
+
98
+ })
99
+ }
100
+
101
+ $.fn.alert.defaults = {
102
+ selector: '.close'
103
+ }
104
+
105
+ $(document).ready(function () {
106
+ new Alert($('body'), {
107
+ selector: '.alert-message[data-alert] .close'
108
+ })
109
+ })
110
+
111
+ }( window.jQuery || window.ender );
@@ -0,0 +1,53 @@
1
+ /* ============================================================
2
+ * bootstrap-dropdown.js v1.3.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#dropdown
4
+ * ============================================================
5
+ * Copyright 2011 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ============================================================ */
19
+
20
+
21
+ !function( $ ){
22
+
23
+ /* DROPDOWN PLUGIN DEFINITION
24
+ * ========================== */
25
+
26
+ $.fn.dropdown = function ( selector ) {
27
+ return this.each(function () {
28
+ $(this).delegate(selector || d, 'click', function (e) {
29
+ var li = $(this).parent('li')
30
+ , isActive = li.hasClass('open')
31
+
32
+ clearMenus()
33
+ !isActive && li.toggleClass('open')
34
+ return false
35
+ })
36
+ })
37
+ }
38
+
39
+ /* APPLY TO STANDARD DROPDOWN ELEMENTS
40
+ * =================================== */
41
+
42
+ var d = 'a.menu, .dropdown-toggle'
43
+
44
+ function clearMenus() {
45
+ $(d).parent('li').removeClass('open')
46
+ }
47
+
48
+ $(function () {
49
+ $('html').bind("click", clearMenus)
50
+ $('body').dropdown( '[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle' )
51
+ })
52
+
53
+ }( window.jQuery || window.ender );