rails3-generators 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. data/.gitignore +16 -1
  2. data/{lib/generators/simple_form_erb/controller/templates/view.html.erb → Gemfile} +0 -0
  3. data/README.rdoc +26 -3
  4. data/Rakefile +39 -1
  5. data/VERSION +1 -1
  6. data/lib/generators/authlogic/session/session_generator.rb +2 -1
  7. data/lib/generators/erubis.rb +9 -0
  8. data/lib/generators/erubis/controller/controller_generator.rb +10 -0
  9. data/lib/generators/erubis/controller/templates/view.html.erb +2 -0
  10. data/lib/generators/erubis/scaffold/scaffold_generator.rb +25 -0
  11. data/lib/generators/erubis/scaffold/templates/_form.html.erb +23 -0
  12. data/lib/generators/{formtastic_erb → erubis}/scaffold/templates/edit.html.erb +0 -0
  13. data/lib/generators/{formtastic_erb → erubis}/scaffold/templates/index.html.erb +1 -1
  14. data/lib/generators/{formtastic_erb → erubis}/scaffold/templates/new.html.erb +0 -0
  15. data/lib/generators/{formtastic_erb → erubis}/scaffold/templates/show.html.erb +2 -0
  16. data/lib/generators/formtastic.rb +29 -0
  17. data/lib/generators/formtastic/scaffold/scaffold_generator.rb +25 -0
  18. data/lib/generators/{formtastic_erb/scaffold/templates/_form.html.erb → formtastic/scaffold/templates/_form.html.erb.erb} +1 -1
  19. data/lib/generators/{formtastic_haml/scaffold/templates/_form.haml.erb → formtastic/scaffold/templates/_form.html.haml.erb} +2 -2
  20. data/lib/generators/haml/controller/controller_generator.rb +6 -14
  21. data/lib/generators/haml/controller/templates/view.html.haml +2 -0
  22. data/lib/generators/haml/install/install_generator.rb +20 -0
  23. data/lib/generators/haml/install/templates/config/initializers/haml.rb.tt +4 -0
  24. data/lib/generators/haml/scaffold/scaffold_generator.rb +24 -7
  25. data/lib/generators/haml/scaffold/templates/{_form.haml.erb → _form.html.haml.erb} +0 -0
  26. data/lib/generators/{formtastic_haml/scaffold/templates/edit.haml.erb → haml/scaffold/templates/edit.html.haml.erb} +0 -0
  27. data/lib/generators/{formtastic_haml/scaffold/templates/index.haml.erb → haml/scaffold/templates/index.html.haml.erb} +0 -0
  28. data/lib/generators/{formtastic_haml/scaffold/templates/new.haml.erb → haml/scaffold/templates/new.html.haml.erb} +0 -0
  29. data/lib/generators/{formtastic_haml/scaffold/templates/show.haml.erb → haml/scaffold/templates/show.html.haml.erb} +0 -0
  30. data/lib/generators/simple_form.rb +30 -0
  31. data/lib/generators/simple_form/scaffold/scaffold_generator.rb +25 -0
  32. data/lib/generators/simple_form/scaffold/templates/_form.html.erb.erb +21 -0
  33. data/lib/generators/simple_form/scaffold/templates/_form.html.haml.erb +15 -0
  34. data/lib/rails3-generators.rb +56 -1
  35. data/rails3-generators.gemspec +74 -58
  36. data/test/fixtures/routes.rb +58 -0
  37. data/test/lib/generators/authlogic/session_generator_test.rb +14 -0
  38. data/test/lib/generators/datamapper/migration_generator_test.rb +13 -0
  39. data/test/lib/generators/datamapper/model_generator_test.rb +13 -0
  40. data/test/lib/generators/datamapper/observer_generator_test.rb +13 -0
  41. data/test/lib/generators/erubis/controller_generator_test.rb +16 -0
  42. data/test/lib/generators/erubis/scaffold_generator_test.rb +30 -0
  43. data/test/lib/generators/factory_girl/model_generator_test.rb +22 -0
  44. data/test/lib/generators/formtastic/scaffold_generators_test.rb +19 -0
  45. data/test/lib/generators/haml/controller_generator_test.rb +16 -0
  46. data/test/lib/generators/haml/install_generator_test.rb +15 -0
  47. data/test/lib/generators/haml/scaffold_generator_test.rb +30 -0
  48. data/test/lib/generators/machinist/model_generator_test.rb +24 -0
  49. data/test/lib/generators/mongomapper/model_generator_test.rb +13 -0
  50. data/test/lib/generators/mongomapper/observer_generator_test.rb +13 -0
  51. data/test/lib/generators/simple_form/scaffold_generators_test.rb +19 -0
  52. data/test/test_helper.rb +52 -0
  53. metadata +72 -75
  54. data/lib/generators/formtastic_erb.rb +0 -9
  55. data/lib/generators/formtastic_erb/USAGE +0 -8
  56. data/lib/generators/formtastic_erb/controller/controller_generator.rb +0 -24
  57. data/lib/generators/formtastic_erb/controller/templates/view.html.erb +0 -1
  58. data/lib/generators/formtastic_erb/scaffold/scaffold_generator.rb +0 -25
  59. data/lib/generators/formtastic_erb/scaffold/templates/layout.html.erb +0 -16
  60. data/lib/generators/formtastic_haml.rb +0 -9
  61. data/lib/generators/formtastic_haml/USAGE +0 -8
  62. data/lib/generators/formtastic_haml/controller/controller_generator.rb +0 -24
  63. data/lib/generators/formtastic_haml/controller/templates/view.haml.erb +0 -1
  64. data/lib/generators/formtastic_haml/scaffold/scaffold_generator.rb +0 -25
  65. data/lib/generators/formtastic_haml/scaffold/templates/layout.haml.erb +0 -9
  66. data/lib/generators/haml/scaffold/templates/edit.haml.erb +0 -7
  67. data/lib/generators/haml/scaffold/templates/index.haml.erb +0 -23
  68. data/lib/generators/haml/scaffold/templates/layout.haml.erb +0 -9
  69. data/lib/generators/haml/scaffold/templates/new.haml.erb +0 -5
  70. data/lib/generators/haml/scaffold/templates/show.haml.erb +0 -9
  71. data/lib/generators/simple_form_erb.rb +0 -9
  72. data/lib/generators/simple_form_erb/USAGE +0 -20
  73. data/lib/generators/simple_form_erb/controller/controller_generator.rb +0 -24
  74. data/lib/generators/simple_form_erb/scaffold/scaffold_generator.rb +0 -32
  75. data/lib/generators/simple_form_erb/scaffold/templates/_form.html.erb +0 -11
  76. data/lib/generators/simple_form_erb/scaffold/templates/_form_errors.html.erb +0 -10
  77. data/lib/generators/simple_form_erb/scaffold/templates/edit.html.erb +0 -6
  78. data/lib/generators/simple_form_erb/scaffold/templates/index.html.erb +0 -27
  79. data/lib/generators/simple_form_erb/scaffold/templates/layout.html.erb +0 -16
  80. data/lib/generators/simple_form_erb/scaffold/templates/new.html.erb +0 -5
  81. data/lib/generators/simple_form_erb/scaffold/templates/show.html.erb +0 -10
  82. data/lib/generators/simple_form_haml.rb +0 -9
  83. data/lib/generators/simple_form_haml/USAGE +0 -20
  84. data/lib/generators/simple_form_haml/controller/controller_generator.rb +0 -24
  85. data/lib/generators/simple_form_haml/controller/templates/view.html.haml +0 -0
  86. data/lib/generators/simple_form_haml/scaffold/scaffold_generator.rb +0 -31
  87. data/lib/generators/simple_form_haml/scaffold/templates/_form.haml.erb +0 -9
  88. data/lib/generators/simple_form_haml/scaffold/templates/_form_errors.haml.erb +0 -6
  89. data/lib/generators/simple_form_haml/scaffold/templates/edit.haml.erb +0 -7
  90. data/lib/generators/simple_form_haml/scaffold/templates/index.haml.erb +0 -23
  91. data/lib/generators/simple_form_haml/scaffold/templates/layout.haml.erb +0 -9
  92. data/lib/generators/simple_form_haml/scaffold/templates/new.haml.erb +0 -5
  93. data/lib/generators/simple_form_haml/scaffold/templates/show.haml.erb +0 -10
data/.gitignore CHANGED
@@ -1,7 +1,22 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
1
16
  ## PROJECT::GENERAL
2
17
  coverage
3
18
  rdoc
4
19
  pkg
5
20
 
6
21
  ## PROJECT::SPECIFIC
7
- .idea
22
+ tmp/**/*
data/README.rdoc CHANGED
@@ -1,10 +1,32 @@
1
1
  = rails3-generators
2
2
 
3
- Rails 3 compatible generators for DataMapper, Haml, Factory-girl, Authlogic, Mongomapper, Shoulda, Formtastic and SimpleForm
3
+ Generators for DataMapper, Haml, Factory-girl, Authlogic, Mongomapper, Shoulda, Formtastic and SimpleForm
4
4
 
5
- == Note on Patches/Pull Requests
5
+ == install
6
+
7
+ gem install rails3-generators
8
+
9
+ and add the following to your project's Gemfile
10
+
11
+ gem 'rails3-generators'
6
12
 
7
- Fork the repo, add a generator, send a pull request. Pretty simple.
13
+ == notes
14
+
15
+ To avoid overriding the rails built-in Erb template generators this project uses the namespace Erubis for *.erb templates
16
+
17
+ config.generators do |g|
18
+ g.template_engine :erubis
19
+ end
20
+
21
+ == Note on Patches/Pull Requests
22
+
23
+ * Fork the project.
24
+ * Make your feature addition or bug fix.
25
+ * Add tests for it. This is important so I don't break it in a
26
+ future version unintentionally.
27
+ * Commit, do not mess with rakefile, version, or history.
28
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
29
+ * Send me a pull request. Bonus points for topic branches.
8
30
 
9
31
  == Contributors
10
32
 
@@ -24,3 +46,4 @@ Shoulda: Peter Haza
24
46
 
25
47
  SimpleForm: Peter Gumeson
26
48
 
49
+ and more[http://github.com/indirect/rails3-generators/contributors]
data/Rakefile CHANGED
@@ -3,20 +3,58 @@ require 'rake'
3
3
 
4
4
  begin
5
5
  require 'jeweler'
6
+
6
7
  Jeweler::Tasks.new do |gem|
8
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
9
+
7
10
  gem.name = "rails3-generators"
8
11
  gem.summary = %Q{Rails 3 compatible generators}
9
12
  gem.description = %Q{Rails 3 compatible generators for DataMapper, Haml, Factory-girl, Authlogic, Mongomapper, Shoulda, Formtastic and SimpleForm}
10
13
  gem.email = "andre@arko.net"
11
14
  gem.homepage = "http://github.com/indirect/rails3-generators"
12
15
  gem.authors = ["Jose Valim", "Anuj Dutta", "Paul Berry", "Jeff Tucker", "Louis T.", "Jai-Gouk Kim", "Darcy Laycock", "Peter Haza", "Peter Gumeson"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
16
+ # gem.add_development_dependency "rspec", ">= 1.2.9"
17
+ gem.post_install_message =
18
+ %Q{
19
+ rails3-generators-#{version}
20
+ Be sure to check out the wiki, http://wiki.github.com/indirect/rails3-generators/,
21
+ for information about recent changes to this project.
22
+
23
+ note: if you use erb templates add the follow to your generators block to take full advantage of this gem.
24
+ g.template_engine :erubis
25
+
26
+ }
27
+
14
28
  end
15
29
  Jeweler::GemcutterTasks.new
16
30
  rescue LoadError
17
31
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
18
32
  end
19
33
 
34
+ require 'rake/testtask'
35
+ Rake::TestTask.new(:test) do |test|
36
+ test.libs << 'lib' << 'test'
37
+ test.pattern = 'test/**/*_test.rb'
38
+ test.verbose = true
39
+ end
40
+
41
+ begin
42
+ require 'rcov/rcovtask'
43
+ Rcov::RcovTask.new do |test|
44
+ test.libs << 'test'
45
+ test.pattern = 'test/**/test_*.rb'
46
+ test.verbose = true
47
+ end
48
+ rescue LoadError
49
+ task :rcov do
50
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
51
+ end
52
+ end
53
+
54
+ task :test => :check_dependencies
55
+
56
+ task :default => :test
57
+
20
58
  require 'rake/rdoctask'
21
59
  Rake::RDocTask.new do |rdoc|
22
60
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.2
1
+ 0.9.0
@@ -11,7 +11,8 @@ module Authlogic
11
11
  template 'session.rb', File.join('app', 'models', class_path, "#{file_name}.rb")
12
12
  end
13
13
 
14
- hook_for :test_framework
14
+ # HACK: make test_framework generator for this generator.
15
+ hook_for :test_framework, :as => :model
15
16
  end
16
17
  end
17
18
  end
@@ -0,0 +1,9 @@
1
+ module Erubis
2
+ module Generators
3
+ module TemplatePath
4
+ def source_root
5
+ @_haml_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'erubis', generator_name, 'templates'))
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'generators/erubis'
2
+ require 'rails/generators/erb/controller/controller_generator'
3
+
4
+ module Erubis
5
+ module Generators
6
+ class ControllerGenerator < Erb::Generators::ControllerGenerator
7
+ extend TemplatePath
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,2 @@
1
+ <h1><%= class_name %>#<%= @action %></h1>
2
+ <p>Find me in <%= @path %></p>
@@ -0,0 +1,25 @@
1
+ require 'generators/erubis'
2
+ require 'rails/generators/erb/scaffold/scaffold_generator'
3
+
4
+ module Erubis
5
+ module Generators
6
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
7
+ extend TemplatePath
8
+
9
+ hook_for :form_builder, :as => :scaffold
10
+
11
+ def copy_form_file
12
+ if options[:form_builder].nil?
13
+ filename = filename_with_extensions("_form")
14
+ template filename, File.join("app/views", controller_file_path, filename)
15
+ end
16
+ end
17
+
18
+ protected
19
+
20
+ def available_views
21
+ %w(index edit show new)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ <%%= form_for(@<%= singular_name %>) do |f| %>
2
+ <%% if @<%= singular_name %>.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%%= pluralize(@<%= singular_name %>.errors.count, "error") %> prohibited this <%= singular_name %> from being saved:</h2>
5
+
6
+ <ul>
7
+ <%% @<%= singular_name %>.errors.full_messages.each do |msg| %>
8
+ <li><%%= msg %></li>
9
+ <%% end %>
10
+ </ul>
11
+ </div>
12
+ <%% end %>
13
+
14
+ <% for attribute in attributes -%>
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,4 +24,4 @@
24
24
 
25
25
  <br />
26
26
 
27
- <%%= link_to 'New <%= singular_name %>', new_<%= singular_name %>_path %>
27
+ <%%= link_to 'New <%= human_name %>', new_<%= singular_name %>_path %>
@@ -1,3 +1,5 @@
1
+ <p id="notice"><%%= notice %></p>
2
+
1
3
  <% for attribute in attributes -%>
2
4
  <p>
3
5
  <b><%= attribute.human_name %>:</b>
@@ -0,0 +1,29 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module Formtastic
4
+ module Generators
5
+ class Base < Rails::Generators::NamedBase #:nodoc:
6
+
7
+ def self.source_root
8
+ @_simple_form_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'formtastic', generator_name, 'templates'))
9
+ end
10
+ protected
11
+
12
+ def format
13
+ :html
14
+ end
15
+
16
+ def handler
17
+ :erb
18
+ end
19
+
20
+ def filename_with_extensions(name)
21
+ [name, format, handler].compact.join(".")
22
+ end
23
+
24
+ def template_filename_with_extensions(name)
25
+ [name, format, handler, :erb].compact.join(".")
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ require 'generators/formtastic'
2
+ require 'rails/generators/resource_helpers'
3
+
4
+ module Formtastic
5
+ module Generators
6
+ class ScaffoldGenerator < Base
7
+ include Rails::Generators::ResourceHelpers
8
+
9
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
10
+
11
+ class_option :template_engine
12
+
13
+ def copy_form_file
14
+ filename = filename_with_extensions("_form")
15
+ template template_filename_with_extensions("_form"), File.join("app/views", controller_file_path, filename)
16
+ end
17
+
18
+ protected
19
+
20
+ def handler
21
+ options[:template_engine].to_s.gsub('erubis', 'erb')
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,4 +1,4 @@
1
- <%% semantic_form_for @<%= singular_name %> do |form| %>
1
+ <%%= semantic_form_for @<%= file_name %> do |form| %>
2
2
  <%- if attributes.empty? -%>
3
3
  <%% form.inputs %>
4
4
  <%- else -%>
@@ -1,8 +1,8 @@
1
- - semantic_form_for @<%= singular_name %> do |form|
1
+ = semantic_form_for @<%= file_name %> do |form|
2
2
  <%- if attributes.empty? -%>
3
3
  = form.inputs
4
4
  <%- else -%>
5
- - form.inputs do
5
+ = form.inputs do
6
6
  <%- for attribute in attributes -%>
7
7
  = form.input :<%= attribute.name.gsub(/_id$/, '') %>, :label => '<%= attribute.name.titleize %>'
8
8
  <%- end -%>
@@ -1,24 +1,16 @@
1
1
  require 'generators/haml'
2
- require 'rails/generators/named_base'
2
+ require 'rails/generators/erb/controller/controller_generator'
3
3
 
4
4
  module Haml
5
5
  module Generators
6
- class ControllerGenerator < Rails::Generators::NamedBase
6
+ class ControllerGenerator < Erb::Generators::ControllerGenerator
7
7
  extend TemplatePath
8
-
9
- argument :actions, :type => :array, :default => [], :banner => "action action"
10
8
 
11
- def create_view_files
12
- base_path = File.join("app/views", class_path, file_name)
13
- empty_directory base_path
9
+ protected
14
10
 
15
- actions.each do |action|
16
- @action = action
17
- @path = File.join(base_path, "#{action}.html.haml")
18
-
19
- template 'view.html.haml', @path
11
+ def handler
12
+ :haml
20
13
  end
21
- end
22
14
  end
23
15
  end
24
- end
16
+ end
@@ -0,0 +1,2 @@
1
+ %h1 <%= class_name %>#<%= @action %>
2
+ %p Find me in <%= @path %>
@@ -0,0 +1,20 @@
1
+ require 'generators/haml'
2
+
3
+ module Haml
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ extend TemplatePath
7
+
8
+ def copy_initializer_files
9
+ inside "config" do
10
+ empty_directory "initializers", :verbose => false
11
+
12
+ inside "initializers" do
13
+ template "haml.rb.tt", "haml.rb"
14
+ end
15
+ end
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,4 @@
1
+ # Load Haml and Sass.
2
+ Haml.init_rails(binding) if defined?(Haml)
3
+
4
+ Haml::Template.options[:format] = :html5
@@ -6,21 +6,38 @@ module Haml
6
6
  class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
7
7
  extend TemplatePath
8
8
 
9
- def copy_layout_file
10
- return unless options[:layout]
11
- template "layout.haml.erb",
12
- File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.html.haml")
13
- end
14
-
15
9
  def copy_view_files
16
10
  views = available_views
17
11
  views.delete("index") if options[:singleton]
18
12
 
19
13
  views.each do |view|
20
- template "#{view}.haml.erb", File.join("app/views", controller_file_path, "#{view}.html.haml")
14
+ filename = filename_with_extensions(view)
15
+ template template_filename_with_extensions(view), File.join("app/views", controller_file_path, filename)
16
+ end
17
+ end
18
+
19
+ hook_for :form_builder, :as => :scaffold
20
+
21
+ def copy_form_file
22
+ if options[:form_builder].nil?
23
+ filename = filename_with_extensions("_form")
24
+ template template_filename_with_extensions("_form"), File.join("app/views", controller_file_path, filename)
21
25
  end
22
26
  end
23
27
 
28
+ protected
29
+
30
+ def available_views
31
+ %w(index edit show new)
32
+ end
33
+
34
+ def handler
35
+ :haml
36
+ end
37
+
38
+ def template_filename_with_extensions(name)
39
+ [name, format, handler, :erb].compact.join(".")
40
+ end
24
41
  end
25
42
  end
26
43
  end
@@ -0,0 +1,30 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module SimpleForm
4
+ module Generators
5
+ class Base < Rails::Generators::NamedBase #:nodoc:
6
+ # include Rails::Generators::ResourceHelpers
7
+
8
+ def self.source_root
9
+ @_simple_form_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'simple_form', generator_name, 'templates'))
10
+ end
11
+ protected
12
+
13
+ def format
14
+ :html
15
+ end
16
+
17
+ def handler
18
+ :erb
19
+ end
20
+
21
+ def filename_with_extensions(name)
22
+ [name, format, handler].compact.join(".")
23
+ end
24
+
25
+ def template_filename_with_extensions(name)
26
+ [name, format, handler, :erb].compact.join(".")
27
+ end
28
+ end
29
+ end
30
+ end