bootstrap-generators 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,10 +6,8 @@ Add it to your Gemfile:
6
6
 
7
7
  `gem "bootstrap-generators"`
8
8
 
9
- Add simple_form to your Gemfile
10
-
11
- `gem "simple_form"`
12
-
13
9
  Run the generator:
14
10
 
15
11
  `rails generate bootstrap:install`
12
+
13
+ Once you've done that, any time you generate a controller or scaffold, you'll get [Bootstrap](http://twitter.github.com/bootstrap/) templates.
@@ -27,5 +27,4 @@ Gem::Specification.new do |s|
27
27
  s.add_development_dependency "rails", "~> 3.0"
28
28
 
29
29
  s.add_runtime_dependency "railties", "~> 3.0"
30
- s.add_runtime_dependency "simple_form", "~> 1.5.0"
31
30
  end
@@ -1,3 +1,5 @@
1
+ require 'rails'
2
+
1
3
  module Bootstrap
2
4
  module Generators
3
5
  class Railtie < ::Rails::Railtie
@@ -1,5 +1,5 @@
1
1
  module Bootstrap
2
2
  module Generators
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -6,14 +6,6 @@ module Bootstrap
6
6
  desc "Copy BootstrapGenerators default files"
7
7
  source_root File.expand_path('../templates', __FILE__)
8
8
 
9
- def copy_simple_form_inputs
10
- directory 'app'
11
- end
12
-
13
- def copy_simple_form_config
14
- directory 'config'
15
- end
16
-
17
9
  def copy_lib
18
10
  directory 'lib'
19
11
  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>
@@ -1,17 +1,25 @@
1
- <%%= simple_form_for(@<%= singular_table_name %>) do |f| %>
2
- <%% if f.object.errors.any? %>
3
- <div class="alert-message error">
4
- <%%= f.error_notification %>
1
+ <%%= form_for(@<%= singular_table_name %>) do |f| %>
2
+ <%% if @<%= singular_table_name %>.errors.any? %>
3
+ <div class="alert-message block-message error">
4
+ <p><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</p>
5
+
6
+ <ul>
7
+ <%% @<%= singular_table_name %>.errors.full_messages.each do |msg| %>
8
+ <li><%%= msg %></li>
9
+ <%% end %>
10
+ </ul>
5
11
  </div>
6
12
  <%% end %>
7
13
 
8
- <div class="inputs">
9
- <%- attributes.each do |attribute| -%>
10
- <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %>, :input_html => { :class => '<%= [:datetime_select, :date_select].include?(attribute.field_type) ? 'small' : 'xxlarge' %>' } %>
11
- <%- end -%>
14
+ <% attributes.each do |attribute| -%>
15
+ <div class="clearfix">
16
+ <%%= f.label :<%= attribute.name %> %>
17
+ <div class="input">
18
+ <%%= f.<%= attribute.field_type %> :<%= attribute.name %>, :class => "<%= [:datetime_select, :date_select].include?(attribute.field_type) ? 'small' : 'xxlarge' %>" %>
19
+ </div>
12
20
  </div>
13
-
21
+ <% end -%>
14
22
  <div class="actions">
15
- <%%= f.button :submit, :class => "btn primary" %>
23
+ <%%= f.submit :class => "btn primary" %>
16
24
  </div>
17
- <%% end %>
25
+ <%% end %>
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ class Bootstrap::Generators::InstallGeneratorTest < ::Rails::Generators::TestCase
4
+ destination File.join(Rails.root)
5
+ tests Bootstrap::Generators::InstallGenerator
6
+
7
+ setup :prepare_destination
8
+ setup :copy_routes
9
+
10
+ test "should copy controller templates" do
11
+ run_generator
12
+
13
+ assert_file "lib/templates/erb/controller/view.html.erb"
14
+ end
15
+
16
+ test "should copy scaffold templates" do
17
+ run_generator
18
+
19
+ %w(index edit new show _form).each { |view| assert_file "lib/templates/erb/scaffold/#{view}.html.erb" }
20
+ end
21
+ end
data/test/test_helper.rb CHANGED
@@ -31,44 +31,4 @@ def copy_routes
31
31
  FileUtils.cp File.expand_path(routes), destination
32
32
  end
33
33
 
34
- # Asserts the given class exists in the given content. When a block is given,
35
- # it yields the content of the class.
36
- #
37
- # assert_file "test/functional/accounts_controller_test.rb" do |controller_test|
38
- # assert_class "AccountsControllerTest", controller_test do |klass|
39
- # assert_match /context "index action"/, klass
40
- # end
41
- # end
42
- #
43
- def assert_class(klass, content)
44
- assert content =~ /class #{klass}(\(.+\))?(.*?)\nend/m, "Expected to have class #{klass}"
45
- yield $2.strip if block_given?
46
- end
47
-
48
- def generator_list
49
- {
50
- :rails => ['scaffold', 'controller'],
51
- :erubis => ['scaffold']
52
- }
53
- end
54
-
55
- def path_prefix(name)
56
- case name
57
- when :rails
58
- 'rails/generators'
59
- else
60
- 'generators'
61
- end
62
- end
63
-
64
- def require_generators(generator_list)
65
- generator_list.each do |name, generators|
66
- generators.each do |generator_name|
67
- require File.join(path_prefix(name), name.to_s, generator_name.to_s, "#{generator_name}_generator")
68
- end
69
- end
70
- end
71
- alias :require_generator :require_generators
72
-
73
- require_generators generator_list
74
-
34
+ require 'generators/bootstrap/install/install_generator'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap-generators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-10 00:00:00.000000000Z
12
+ date: 2011-10-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &2152295500 !ruby/object:Gem::Requirement
16
+ requirement: &2152076780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2152295500
24
+ version_requirements: *2152076780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: test-unit
27
- requirement: &2152256980 !ruby/object:Gem::Requirement
27
+ requirement: &2152089360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2152256980
35
+ version_requirements: *2152089360
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rails
38
- requirement: &2152255600 !ruby/object:Gem::Requirement
38
+ requirement: &2152102240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152255600
46
+ version_requirements: *2152102240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: railties
49
- requirement: &2152253880 !ruby/object:Gem::Requirement
49
+ requirement: &2152243120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,18 +54,7 @@ dependencies:
54
54
  version: '3.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2152253880
58
- - !ruby/object:Gem::Dependency
59
- name: simple_form
60
- requirement: &2152253220 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ~>
64
- - !ruby/object:Gem::Version
65
- version: 1.5.0
66
- type: :runtime
67
- prerelease: false
68
- version_requirements: *2152253220
57
+ version_requirements: *2152243120
69
58
  description: Bootstrap-generators provides Twitter Bootstrap generators for Rails
70
59
  3. Bootstrap is a toolkit from Twitter designed to kickstart development of webapps
71
60
  and sites. Checkout http://twitter.github.com/bootstrap.
@@ -85,23 +74,17 @@ files:
85
74
  - lib/bootstrap/generators/railtie.rb
86
75
  - lib/bootstrap/generators/version.rb
87
76
  - lib/generators/bootstrap/install/install_generator.rb
88
- - lib/generators/bootstrap/install/templates/app/inputs/boolean_input.rb
89
- - lib/generators/bootstrap/install/templates/app/inputs/date_time_input.rb
90
- - lib/generators/bootstrap/install/templates/app/inputs/mapping_input.rb
91
- - lib/generators/bootstrap/install/templates/app/inputs/string_input.rb
92
- - lib/generators/bootstrap/install/templates/app/inputs/text_input.rb
93
77
  - lib/generators/bootstrap/install/templates/application.html.erb
94
78
  - lib/generators/bootstrap/install/templates/bootstrap-generators.css.scss
95
79
  - lib/generators/bootstrap/install/templates/bootstrap-generators.js
96
- - lib/generators/bootstrap/install/templates/config/initializers/simple_form.rb
80
+ - lib/generators/bootstrap/install/templates/lib/templates/erb/controller/view.html.erb
97
81
  - lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/_form.html.erb
98
82
  - lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/edit.html.erb
99
83
  - lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/index.html.erb
100
84
  - lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/new.html.erb
101
85
  - lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/show.html.erb
102
86
  - test/fixtures/routes.rb
103
- - test/lib/generators/erubis/controller_generator_test.rb
104
- - test/lib/generators/erubis/scaffold_generator_test.rb
87
+ - test/lib/generators/bootstrap/install_generator_test.rb
105
88
  - test/test_helper.rb
106
89
  - vendor/assets/javascripts/bootstrap-alerts.js
107
90
  - vendor/assets/javascripts/bootstrap-dropdown.js
@@ -139,6 +122,5 @@ specification_version: 3
139
122
  summary: Bootstrap-generators provides Twitter Bootstrap generators for Rails 3.
140
123
  test_files:
141
124
  - test/fixtures/routes.rb
142
- - test/lib/generators/erubis/controller_generator_test.rb
143
- - test/lib/generators/erubis/scaffold_generator_test.rb
125
+ - test/lib/generators/bootstrap/install_generator_test.rb
144
126
  - test/test_helper.rb
@@ -1,11 +0,0 @@
1
- class BooleanInput < SimpleForm::Inputs::BooleanInput
2
- def label_input
3
- content = "".html_safe
4
- [ :input, :error, :hint ].each do |component|
5
- next if options[component] == false
6
- rendered = send(component)
7
- content.safe_concat rendered.to_s if rendered
8
- end
9
- (options[:label] == false ? "" : label) + "<div class=\"input\"><ul class=\"inputs-list\"><li><label>#{content}</label></li></ul></div>".html_safe
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- class DateTimeInput < SimpleForm::Inputs::DateTimeInput
2
- def label_input
3
- content = "".html_safe
4
- [ :input, :error, :hint ].each do |component|
5
- next if options[component] == false
6
- rendered = send(component)
7
- content.safe_concat rendered.to_s if rendered
8
- end
9
- (options[:label] == false ? "" : label) + "<div class=\"input\">#{content}</div>".html_safe
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- class MappingInput < SimpleForm::Inputs::MappingInput
2
- def label_input
3
- content = "".html_safe
4
- [ :input, :error, :hint ].each do |component|
5
- next if options[component] == false
6
- rendered = send(component)
7
- content.safe_concat rendered.to_s if rendered
8
- end
9
- (options[:label] == false ? "" : label) + "<div class=\"input\">#{content}</div>".html_safe
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- class StringInput < SimpleForm::Inputs::StringInput
2
- def label_input
3
- content = "".html_safe
4
- [ :input, :error, :hint ].each do |component|
5
- next if options[component] == false
6
- rendered = send(component)
7
- content.safe_concat rendered.to_s if rendered
8
- end
9
- (options[:label] == false ? "" : label) + "<div class=\"input\">#{content}</div>".html_safe
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- class TextInput < SimpleForm::Inputs::TextInput
2
- def label_input
3
- content = "".html_safe
4
- [ :input, :error, :hint ].each do |component|
5
- next if options[component] == false
6
- rendered = send(component)
7
- content.safe_concat rendered.to_s if rendered
8
- end
9
- (options[:label] == false ? "" : label) + "<div class=\"input\">#{content}</div>".html_safe
10
- end
11
- end
@@ -1,93 +0,0 @@
1
- # Use this setup block to configure all options available in SimpleForm.
2
- SimpleForm.setup do |config|
3
- # Components used by the form builder to generate a complete input. You can remove
4
- # any of them, change the order, or even add your own components to the stack.
5
- config.components = [ :placeholder, :label_input ]
6
-
7
- # Default tag used on hints.
8
- # config.hint_tag = :span
9
-
10
- # CSS class to add to all hint tags.
11
- config.hint_class = :"help-block"
12
-
13
- # CSS class used on errors.
14
- config.error_class = :"help-inline"
15
-
16
- # Default tag used on errors.
17
- # config.error_tag = :span
18
-
19
- # Method used to tidy up errors.
20
- # config.error_method = :first
21
-
22
- # Default tag used for error notification helper.
23
- # config.error_notification_tag = :p
24
-
25
- # CSS class to add for error notification helper.
26
- # config.error_notification_class = :error_notification
27
-
28
- # ID to add for error notification helper.
29
- # config.error_notification_id = nil
30
-
31
- # You can wrap all inputs in a pre-defined tag.
32
- # config.wrapper_tag = :div
33
-
34
- # CSS class to add to all wrapper tags.
35
- config.wrapper_class = :clearfix
36
-
37
- # CSS class to add to the wrapper if the field has errors.
38
- config.wrapper_error_class = :error
39
-
40
- # You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
41
- # config.collection_wrapper_tag = nil
42
-
43
- # You can wrap each item in a collection of radio/check boxes with a tag, defaulting to span.
44
- # config.item_wrapper_tag = :span
45
-
46
- # Series of attempts to detect a default label method for collection.
47
- # config.collection_label_methods = [ :to_label, :name, :title, :to_s ]
48
-
49
- # Series of attempts to detect a default value method for collection.
50
- # config.collection_value_methods = [ :id, :to_s ]
51
-
52
- # How the label text should be generated altogether with the required text.
53
- # config.label_text = lambda { |label, required| "#{required} #{label}" }
54
-
55
- # You can define the class to use on all labels. Default is nil.
56
- # config.label_class = nil
57
-
58
- # You can define the class to use on all forms. Default is simple_form.
59
- # config.form_class = :"form-stacked"
60
-
61
- # Whether attributes are required by default (or not). Default is true.
62
- # config.required_by_default = true
63
-
64
- # Tell browsers whether to use default HTML5 validations (novalidate option).
65
- # Default is enabled.
66
- # config.browser_validations = true
67
-
68
- # Determines whether HTML5 types (:email, :url, :search, :tel) and attributes
69
- # (e.g. required) are used or not. True by default.
70
- # Having this on in non-HTML5 compliant sites can cause odd behavior in
71
- # HTML5-aware browsers such as Chrome.
72
- # config.html5 = true
73
-
74
- # Custom mappings for input types. This should be a hash containing a regexp
75
- # to match as key, and the input type that will be used when the field name
76
- # matches the regexp as value.
77
- # config.input_mappings = { /count/ => :integer }
78
-
79
- # Collection of methods to detect if a file type was given.
80
- # config.file_methods = [ :mounted_as, :file?, :public_filename ]
81
-
82
- # Default priority for time_zone inputs.
83
- # config.time_zone_priority = nil
84
-
85
- # Default priority for country inputs.
86
- # config.country_priority = nil
87
-
88
- # Default size for text inputs.
89
- # config.default_input_size = 50
90
-
91
- # When false, do not use translations for labels, hints or placeholders.
92
- # config.translate = true
93
- end
@@ -1,17 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Erubis::Generators::ControllerGeneratorTest < Rails::Generators::TestCase
4
- destination File.join(Rails.root)
5
- tests Rails::Generators::ControllerGenerator
6
- arguments %w(Account foo bar --template-engine erubis)
7
-
8
- setup :prepare_destination
9
- setup :copy_routes
10
-
11
- test "should invoke template engine" do
12
- run_generator
13
- assert_file "app/views/account/foo.html.erb", %r(app/views/account/foo\.html\.erb)
14
- assert_file "app/views/account/bar.html.erb", %r(app/views/account/bar\.html\.erb)
15
- end
16
- end
17
-
@@ -1,31 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Erubis::Generators::ScaffoldGeneratorTest < Rails::Generators::TestCase
4
- destination File.join(Rails.root)
5
- tests Rails::Generators::ScaffoldGenerator
6
- arguments %w(product_line title:string price:integer --template-engine erubis)
7
-
8
- setup :prepare_destination
9
- setup :copy_routes
10
-
11
- test "should invoke template engine" do
12
- run_generator
13
-
14
- %w(index edit new show _form).each { |view| assert_file "app/views/product_lines/#{view}.html.erb" }
15
- assert_no_file "app/views/layouts/product_lines.html.erb"
16
- end
17
-
18
- test "should revoke template engine" do
19
- run_generator
20
- run_generator ["product_line"], :behavior => :revoke
21
-
22
- assert_no_file "app/views/product_lines"
23
- assert_no_file "app/views/layouts/product_lines.html.erb"
24
- end
25
-
26
- test "should invoke form builder" do
27
- run_generator %w(product_line title:string price:integer --template-engine erubis --form-builder some-form-builder)
28
- assert_no_file "app/views/product_lines/_form.html.erb"
29
- end
30
- end
31
-