fetty-generators 1.7.1 → 2.0.0
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.
- data/Gemfile +2 -0
- data/README.rdoc +42 -36
- data/Rakefile +1 -3
- data/lib/generators/fetty.rb +160 -10
- data/lib/generators/fetty/authentication/USAGE +4 -0
- data/lib/generators/fetty/authentication/authentication_generator.rb +171 -0
- data/lib/generators/fetty/authentication/templates/controllers/reset_passwords_controller.rb +45 -0
- data/lib/generators/fetty/authentication/templates/controllers/sessions_controller.rb +30 -0
- data/lib/generators/fetty/authentication/templates/controllers/users_controller.rb +78 -0
- data/lib/generators/fetty/authentication/templates/helpers/reset_passwords_helper.rb +2 -0
- data/lib/generators/fetty/authentication/templates/helpers/sessions_helper.rb +2 -0
- data/lib/generators/fetty/authentication/templates/helpers/users_helper.rb +2 -0
- data/lib/generators/fetty/authentication/templates/lib/sessions_authentication.rb +53 -0
- data/lib/generators/fetty/authentication/templates/lib/users_authentication.rb +110 -0
- data/lib/generators/fetty/authentication/templates/mailers/setup_mail.rb +11 -0
- data/lib/generators/fetty/authentication/templates/mailers/user_mailer.rb +14 -0
- data/lib/generators/fetty/authentication/templates/models/active_record/create_users.rb +17 -0
- data/lib/generators/fetty/authentication/templates/models/active_record/user.rb +15 -0
- data/lib/generators/fetty/authentication/templates/models/mongoid/user.rb +23 -0
- data/lib/generators/fetty/authentication/templates/spec/controllers/reset_passwords_controller_spec.rb +93 -0
- data/lib/generators/fetty/authentication/templates/spec/controllers/sessions_controller_spec.rb +61 -0
- data/lib/generators/fetty/authentication/templates/spec/controllers/users_controller_spec.rb +158 -0
- data/lib/generators/fetty/authentication/templates/spec/models/user_spec.rb +108 -0
- data/lib/generators/fetty/authentication/templates/spec/routing/reset_passwords_routing_spec.rb +21 -0
- data/lib/generators/fetty/authentication/templates/spec/routing/sessions_routing_spec.rb +17 -0
- data/lib/generators/fetty/authentication/templates/spec/routing/users_routing_spec.rb +37 -0
- data/lib/generators/fetty/authentication/templates/spec/support/user_factories.rb +6 -0
- data/lib/generators/fetty/authentication/templates/views/layouts/application.html.erb +33 -0
- data/lib/generators/fetty/authentication/templates/views/reset_passwords/edit.html.erb +19 -0
- data/lib/generators/fetty/authentication/templates/views/reset_passwords/new.html.erb +14 -0
- data/lib/generators/fetty/authentication/templates/views/sessions/new.html.erb +22 -0
- data/lib/generators/fetty/authentication/templates/views/user_mailer/user_activation.text.erb +4 -0
- data/lib/generators/fetty/authentication/templates/views/user_mailer/user_forgot_password.text.erb +7 -0
- data/lib/generators/fetty/authentication/templates/views/users/_table.html.erb +23 -0
- data/lib/generators/fetty/authentication/templates/views/users/edit.html.erb +21 -0
- data/lib/generators/fetty/authentication/templates/views/users/index.html.erb +7 -0
- data/lib/generators/fetty/authentication/templates/views/users/index.js.erb +1 -0
- data/lib/generators/fetty/authentication/templates/views/users/new.html.erb +23 -0
- data/lib/generators/fetty/authentication/templates/views/users/show.html.erb +19 -0
- data/lib/generators/fetty/messages/USAGE +4 -0
- data/lib/generators/fetty/messages/messages_generator.rb +136 -0
- data/lib/generators/fetty/messages/templates/assets/javascripts/jquery.tokeninput.js +718 -0
- data/lib/generators/fetty/messages/templates/assets/javascripts/messages.js +19 -0
- data/lib/generators/fetty/messages/templates/assets/stylesheets/messages.css +87 -0
- data/lib/generators/fetty/messages/templates/assets/stylesheets/token-input-facebook.css +122 -0
- data/lib/generators/fetty/messages/templates/controllers/messages_controller.rb +109 -0
- data/lib/generators/fetty/messages/templates/helpers/messages_helper.rb +2 -0
- data/lib/generators/fetty/messages/templates/lib/users_messages.rb +67 -0
- data/lib/generators/fetty/messages/templates/models/active_record/create_messages.rb +24 -0
- data/lib/generators/fetty/messages/templates/models/active_record/message.rb +67 -0
- data/lib/generators/fetty/messages/templates/models/mongoid/message.rb +81 -0
- data/lib/generators/fetty/messages/templates/spec/controllers/messages_controller_spec.rb +78 -0
- data/lib/generators/fetty/messages/templates/spec/models/message_spec.rb +53 -0
- data/lib/generators/fetty/messages/templates/spec/routing/messages_routing_spec.rb +61 -0
- data/lib/generators/fetty/messages/templates/spec/support/message_factories.rb +8 -0
- data/lib/generators/fetty/messages/templates/views/_head.html.erb +20 -0
- data/lib/generators/fetty/messages/templates/views/_messages.html.erb +56 -0
- data/lib/generators/fetty/messages/templates/views/_tabs_panel.html.erb +11 -0
- data/lib/generators/fetty/messages/templates/views/index.html.erb +10 -0
- data/lib/generators/fetty/messages/templates/views/index.js.erb +1 -0
- data/lib/generators/fetty/messages/templates/views/new.html.erb +26 -0
- data/lib/generators/fetty/messages/templates/views/show.html.erb +35 -0
- data/lib/generators/fetty/scaffold/USAGE +2 -52
- data/lib/generators/fetty/scaffold/scaffold_generator.rb +96 -329
- data/lib/generators/fetty/scaffold/templates/controllers/active_record/controller.rb +60 -0
- data/lib/generators/fetty/scaffold/templates/controllers/mongoid/controller.rb +60 -0
- data/lib/generators/fetty/scaffold/templates/helpers/helper.rb +2 -0
- data/lib/generators/fetty/scaffold/templates/models/active_record/migration.rb +16 -0
- data/lib/generators/fetty/scaffold/templates/models/active_record/model.rb +10 -0
- data/lib/generators/fetty/scaffold/templates/models/mongoid/model.rb +16 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/controller.rb +98 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/factories.rb +26 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/helper.rb +15 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/model.rb +9 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/request.rb +11 -0
- data/lib/generators/fetty/scaffold/templates/test/rspec/routing.rb +41 -0
- data/lib/generators/fetty/scaffold/templates/test/test_unit/controller.rb +62 -0
- data/lib/generators/fetty/scaffold/templates/{fixtures.yml → test/test_unit/fixtures.yml} +2 -0
- data/lib/generators/fetty/scaffold/templates/test/test_unit/helper.rb +4 -0
- data/lib/generators/fetty/scaffold/templates/test/test_unit/model.rb +7 -0
- data/lib/generators/fetty/scaffold/templates/views/_form.html.erb +20 -0
- data/lib/generators/fetty/scaffold/templates/views/_table.html.erb +48 -0
- data/lib/generators/fetty/scaffold/templates/views/edit.html.erb +13 -0
- data/lib/generators/fetty/scaffold/templates/views/index.html.erb +15 -0
- data/lib/generators/fetty/scaffold/templates/views/{erb/index.js.erb → index.js.erb} +0 -0
- data/lib/generators/fetty/scaffold/templates/views/new.html.erb +9 -0
- data/lib/generators/fetty/scaffold/templates/views/show.html.erb +28 -0
- data/lib/generators/fetty/setup/USAGE +3 -20
- data/lib/generators/fetty/setup/setup_generator.rb +122 -61
- data/lib/generators/fetty/setup/templates/ability.rb +0 -0
- data/lib/generators/fetty/setup/templates/ckeditor.rb +54 -0
- data/lib/generators/fetty/setup/templates/ckeditor.tar.gz +0 -0
- data/lib/generators/fetty/setup/templates/escape_utils.rb +7 -0
- data/lib/generators/fetty/setup/templates/file_uploader.rb +15 -0
- data/lib/generators/fetty/setup/templates/image_uploader.rb +48 -0
- data/lib/generators/fetty/setup/templates/spec_helper.rb +44 -0
- data/lib/generators/fetty/views/USAGE +5 -0
- data/lib/generators/fetty/{layout/templates/stylesheet.css → views/templates/application.css} +184 -166
- data/lib/generators/fetty/views/templates/application.html.erb +23 -0
- data/lib/generators/fetty/{layout → views}/templates/application.js +0 -0
- data/lib/generators/fetty/views/templates/application_helper.rb +10 -0
- data/lib/generators/fetty/views/templates/down_arrow.gif +0 -0
- data/lib/generators/fetty/{layout → views}/templates/error_messages_helper.rb +0 -0
- data/lib/generators/fetty/{layout → views}/templates/layout_helper.rb +0 -0
- data/lib/generators/fetty/views/templates/up_arrow.gif +0 -0
- data/lib/generators/fetty/views/views_generator.rb +51 -0
- data/lib/generators/scaffold.rb +204 -0
- metadata +126 -111
- data/LICENSE +0 -20
- data/lib/generators/fetty/layout/USAGE +0 -26
- data/lib/generators/fetty/layout/layout_generator.rb +0 -44
- data/lib/generators/fetty/layout/templates/layout.html.erb +0 -32
- data/lib/generators/fetty/layout/templates/layout.html.haml +0 -34
- data/lib/generators/fetty/layout/templates/no-devise-links-layout.html.erb +0 -23
- data/lib/generators/fetty/layout/templates/no-devise-links-layout.html.haml +0 -23
- data/lib/generators/fetty/layout/templates/stylesheet.sass +0 -163
- data/lib/generators/fetty/scaffold/templates/actions/create.rb +0 -8
- data/lib/generators/fetty/scaffold/templates/actions/destroy.rb +0 -5
- data/lib/generators/fetty/scaffold/templates/actions/edit.rb +0 -3
- data/lib/generators/fetty/scaffold/templates/actions/index.rb +0 -10
- data/lib/generators/fetty/scaffold/templates/actions/new.rb +0 -3
- data/lib/generators/fetty/scaffold/templates/actions/show.rb +0 -3
- data/lib/generators/fetty/scaffold/templates/actions/update.rb +0 -8
- data/lib/generators/fetty/scaffold/templates/controller.rb +0 -7
- data/lib/generators/fetty/scaffold/templates/helper.rb +0 -2
- data/lib/generators/fetty/scaffold/templates/migration.rb +0 -16
- data/lib/generators/fetty/scaffold/templates/model.rb +0 -7
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/create.rb +0 -11
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/destroy.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/edit.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/index.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/new.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/show.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/rspec/actions/update.rb +0 -11
- data/lib/generators/fetty/scaffold/templates/tests/rspec/controller.rb +0 -8
- data/lib/generators/fetty/scaffold/templates/tests/rspec/model.rb +0 -7
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/create.rb +0 -13
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/destroy.rb +0 -8
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/edit.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/index.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/new.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/show.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/actions/update.rb +0 -13
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/controller.rb +0 -5
- data/lib/generators/fetty/scaffold/templates/tests/shoulda/model.rb +0 -7
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/create.rb +0 -11
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/destroy.rb +0 -6
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/edit.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/index.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/new.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/show.rb +0 -4
- data/lib/generators/fetty/scaffold/templates/tests/testunit/actions/update.rb +0 -11
- data/lib/generators/fetty/scaffold/templates/tests/testunit/controller.rb +0 -5
- data/lib/generators/fetty/scaffold/templates/tests/testunit/model.rb +0 -7
- data/lib/generators/fetty/scaffold/templates/views/erb/_form.html.erb +0 -22
- data/lib/generators/fetty/scaffold/templates/views/erb/_table.html.erb +0 -50
- data/lib/generators/fetty/scaffold/templates/views/erb/edit.html.erb +0 -12
- data/lib/generators/fetty/scaffold/templates/views/erb/index.html.erb +0 -13
- data/lib/generators/fetty/scaffold/templates/views/erb/new.html.erb +0 -9
- data/lib/generators/fetty/scaffold/templates/views/erb/show.html.erb +0 -26
- data/lib/generators/fetty/scaffold/templates/views/haml/_form.html.haml +0 -8
- data/lib/generators/fetty/scaffold/templates/views/haml/_table.html.haml +0 -33
- data/lib/generators/fetty/scaffold/templates/views/haml/edit.html.haml +0 -14
- data/lib/generators/fetty/scaffold/templates/views/haml/index.html.haml +0 -12
- data/lib/generators/fetty/scaffold/templates/views/haml/index.js.haml +0 -1
- data/lib/generators/fetty/scaffold/templates/views/haml/new.html.haml +0 -8
- data/lib/generators/fetty/scaffold/templates/views/haml/show.html.haml +0 -23
|
@@ -1,53 +1,3 @@
|
|
|
1
1
|
Description:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
resource-oriented application. Tests or specs are also generated depending
|
|
5
|
-
on if you have a "spec" directory or not.
|
|
6
|
-
|
|
7
|
-
IMPORTANT: This generator uses the "title" helper method which is generated
|
|
8
|
-
by the fetty-layout generator. You may want to run that generator first.
|
|
9
|
-
|
|
10
|
-
Usage:
|
|
11
|
-
Pass the name of the model, either CamelCased or under_scored, as the first
|
|
12
|
-
argument along with an optional list of attribute pairs and controller actions.
|
|
13
|
-
|
|
14
|
-
If no controller actions are specified, they will default to index, show,
|
|
15
|
-
new, create, edit, update, and destroy.
|
|
16
|
-
|
|
17
|
-
IMPORTANT: If no attribute pairs are specified, no model will be generated.
|
|
18
|
-
It will try to determine the attributes from an existing model.
|
|
19
|
-
|
|
20
|
-
Attribute pairs are column_name:sql_type arguments specifying the
|
|
21
|
-
model's attributes. Timestamps are added by default, so you don't have to
|
|
22
|
-
specify them by hand as 'created_at:datetime updated_at:datetime'.
|
|
23
|
-
|
|
24
|
-
For example, `fetty:scaffold post name:string content:text hidden:boolean`
|
|
25
|
-
gives you a model with those three attributes, a controller that handles
|
|
26
|
-
the create/show/update/destroy, forms to create and edit your posts, and
|
|
27
|
-
an index that lists them all, as well as a resources :posts
|
|
28
|
-
declaration in config/routes.rb.
|
|
29
|
-
|
|
30
|
-
Adding an "!" in the mix of arguments will invert the passed controller
|
|
31
|
-
actions. This will include all 7 controller actitons except the ones
|
|
32
|
-
mentioned. This option doesn't affect model attributes.
|
|
33
|
-
|
|
34
|
-
Examples:
|
|
35
|
-
rails generate fetty:scaffold post
|
|
36
|
-
|
|
37
|
-
Will create a controller called "posts" it will contain all seven
|
|
38
|
-
CRUD actions along with the views. A model will NOT be created,
|
|
39
|
-
instead it will look for an existing model and use those attributes.
|
|
40
|
-
this command will also generate the views using simple-form, meta_search
|
|
41
|
-
and will_paginate in the index.html.erb/haml as a default.
|
|
42
|
-
|
|
43
|
-
rails generate fetty:scaffold post name:string content:text index new edit
|
|
44
|
-
|
|
45
|
-
Will create a Post model and migration file with the name and content
|
|
46
|
-
attributes. It will also create a controller with index, new, create,
|
|
47
|
-
edit, and update actions. Notice the create and update actions are
|
|
48
|
-
added automatically with new and edit.
|
|
49
|
-
|
|
50
|
-
rails generate fetty:scaffold post ! show new
|
|
51
|
-
|
|
52
|
-
Creates a posts controller (no model) with index, edit, update, and
|
|
53
|
-
destroy actions.
|
|
2
|
+
The fetty:scaffold generator creates a basic scaffolding
|
|
3
|
+
using many useful gems.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
require 'generators/fetty'
|
|
2
|
+
require 'generators/scaffold'
|
|
3
|
+
require 'rails/generators/active_record'
|
|
2
4
|
require 'rails/generators/migration'
|
|
3
5
|
require 'rails/generators/generated_attribute'
|
|
4
6
|
|
|
@@ -6,364 +8,129 @@ module Fetty
|
|
|
6
8
|
module Generators
|
|
7
9
|
class ScaffoldGenerator < Base
|
|
8
10
|
include Rails::Generators::Migration
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
include Fetty::Generators::Scaffold
|
|
12
|
+
|
|
11
13
|
argument :scaffold_name, :type => :string, :required => true, :banner => 'ModelName'
|
|
12
|
-
argument :
|
|
13
|
-
|
|
14
|
-
class_option :
|
|
15
|
-
class_option :
|
|
16
|
-
class_option :
|
|
17
|
-
class_option :
|
|
18
|
-
class_option :
|
|
19
|
-
|
|
20
|
-
class_option :
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class_option :shoulda, :desc => 'Use shoulda for test files.', :group => 'Test framework', :type => :boolean
|
|
26
|
-
|
|
27
|
-
def initialize(*args, &block)
|
|
28
|
-
super
|
|
29
|
-
|
|
30
|
-
print_usage unless scaffold_name.underscore =~ /^[a-z][a-z0-9_\/]+$/
|
|
31
|
-
|
|
32
|
-
@controller_actions = []
|
|
33
|
-
@model_attributes = []
|
|
34
|
-
@skip_model = options.skip_model?
|
|
35
|
-
@namespace_model = options.namespace_model?
|
|
36
|
-
@invert_actions = options.invert?
|
|
37
|
-
|
|
38
|
-
@paperclip_name = []
|
|
39
|
-
@tinymce_name = []
|
|
14
|
+
argument :attributes, :type => :array, :default => [], :banner => 'attribute:type'
|
|
15
|
+
|
|
16
|
+
class_option :controller, :desc => 'Generate controller, helper, or views.', :type => :boolean, :default => true
|
|
17
|
+
class_option :model, :desc => "Generate a model or migration file.", :type => :boolean, :default => true
|
|
18
|
+
class_option :migration, :desc => "Generate migration file for model.", :type => :boolean, :default => true
|
|
19
|
+
class_option :timestamps, :desc => "Add timestamps to migration file.", :type => :boolean, :default => true
|
|
20
|
+
class_option :test, :desc => "Generate Test files, either test/unit or rspec", :type => :boolean, :default => true
|
|
21
|
+
|
|
22
|
+
class_option :except, :desc => 'Generate all controller actions except these mentioned.', :type => :array, :default => []
|
|
23
|
+
|
|
24
|
+
def generate_scaffold
|
|
25
|
+
print_usage unless scaffold_name.underscore =~ /^[a-z][a-z0-9_\/]+$/ && !attributes.empty?
|
|
26
|
+
print_usage unless attributes.drop_while { |arg| arg.include?(':') }.count == 0
|
|
40
27
|
|
|
41
|
-
|
|
42
|
-
if arg == '!'
|
|
43
|
-
@invert_actions = true
|
|
44
|
-
elsif arg.include?(':')
|
|
45
|
-
if arg.include?(':paperclip')
|
|
46
|
-
@paperclip_name << arg.split(':').first
|
|
47
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new("#{arg.split(':').first}_file_name", "string")
|
|
48
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new("#{arg.split(':').first}_content_type", "string")
|
|
49
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new("#{arg.split(':').first}_file_size", "integer")
|
|
50
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new("#{arg.split(':').first}_updated_at", "datetime")
|
|
51
|
-
elsif arg.include?(':tinymce')
|
|
52
|
-
@tinymce_name << arg.split(':').first
|
|
53
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new(arg.split(':').first, "text")
|
|
54
|
-
else
|
|
55
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
|
|
56
|
-
end
|
|
57
|
-
else
|
|
58
|
-
@controller_actions << arg
|
|
59
|
-
@controller_actions << 'create' if arg == 'new'
|
|
60
|
-
@controller_actions << 'update' if arg == 'edit'
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
@controller_actions.uniq!
|
|
65
|
-
@model_attributes.uniq!
|
|
28
|
+
@orm = using_mongoid? ? 'mongoid' : 'active_record'
|
|
66
29
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
@skip_model = true # skip model if no attributes
|
|
73
|
-
if model_exists?
|
|
74
|
-
model_columns_for_attributes.each do |column|
|
|
75
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
|
|
30
|
+
setting_model_attributes
|
|
31
|
+
if options[:model]
|
|
32
|
+
generate_model
|
|
33
|
+
if options.migration? && !using_mongoid?
|
|
34
|
+
generate_migration
|
|
76
35
|
end
|
|
77
|
-
else
|
|
78
|
-
@model_attributes << Rails::Generators::GeneratedAttribute.new('name', 'string')
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def create_migration
|
|
84
|
-
unless @skip_model || options.skip_migration?
|
|
85
|
-
migration_template 'migration.rb', "db/migrate/create_#{model_path.pluralize.gsub('/', '_')}.rb"
|
|
86
|
-
delete_paperclip_field_from_model_attributes
|
|
87
36
|
end
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
template 'fixtures.yml', "spec/fixtures/#{model_path.pluralize}.yml"
|
|
96
|
-
else
|
|
97
|
-
template "tests/#{test_framework}/model.rb", "test/unit/#{model_path}_test.rb"
|
|
98
|
-
template 'fixtures.yml', "test/fixtures/#{model_path.pluralize}.yml"
|
|
99
|
-
end
|
|
37
|
+
|
|
38
|
+
if options.controller?
|
|
39
|
+
setting_controller_attributes
|
|
40
|
+
generate_controller
|
|
41
|
+
generate_helper
|
|
42
|
+
generate_views
|
|
43
|
+
generate_routes
|
|
100
44
|
end
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
template 'controller.rb', "app/controllers/#{plural_name}_controller.rb"
|
|
106
|
-
|
|
107
|
-
template 'helper.rb', "app/helpers/#{plural_name}_helper.rb"
|
|
108
|
-
|
|
109
|
-
controller_actions.each do |action|
|
|
110
|
-
if %w[index show new edit].include?(action) # Actions with templates
|
|
111
|
-
template "views/#{view_language}/#{action}.html.#{view_language}", "app/views/#{plural_name}/#{action}.html.#{view_language}"
|
|
112
|
-
if action == 'index'
|
|
113
|
-
template "views/#{view_language}/_table.html.#{view_language}", "app/views/#{plural_name}/_table.html.#{view_language}"
|
|
114
|
-
template "views/#{view_language}/index.js.#{view_language}", "app/views/#{plural_name}/index.js.#{view_language}"
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
if form_partial?
|
|
120
|
-
template "views/#{view_language}/_form.html.#{view_language}", "app/views/#{plural_name}/_form.html.#{view_language}"
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
namespaces = plural_name.split('/')
|
|
124
|
-
resource = namespaces.pop
|
|
125
|
-
route namespaces.reverse.inject("resources :#{resource}") { |acc, namespace|
|
|
126
|
-
"namespace(:#{namespace}){ #{acc} }"
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if test_framework == :rspec
|
|
130
|
-
template "tests/#{test_framework}/controller.rb", "spec/controllers/#{plural_name}_controller_spec.rb"
|
|
131
|
-
else
|
|
132
|
-
template "tests/#{test_framework}/controller.rb", "test/functional/#{plural_name}_controller_test.rb"
|
|
133
|
-
end
|
|
45
|
+
|
|
46
|
+
if options.test?
|
|
47
|
+
generate_test_unit if using_test_unit?
|
|
48
|
+
generate_specs if using_rspec?
|
|
134
49
|
end
|
|
50
|
+
|
|
51
|
+
rescue Exception => e
|
|
52
|
+
print_notes(e.message,"error",:red)
|
|
135
53
|
end
|
|
136
|
-
|
|
137
|
-
private
|
|
138
54
|
|
|
139
|
-
|
|
140
|
-
unless @paperclip_name.empty?
|
|
141
|
-
@paperclip_name.each do |name|
|
|
142
|
-
@model_attributes.delete_if do |a|
|
|
143
|
-
a.name == "#{name}_content_type" || a.name == "#{name}_updated_at" || a.name == "#{name}_file_size"
|
|
144
|
-
end
|
|
145
|
-
@model_attributes.map do |a|
|
|
146
|
-
if a.name == "#{name}_file_name"
|
|
147
|
-
a.name = name
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
def generate_action_links(action, object, link_text, link_path)
|
|
155
|
-
out = ""
|
|
156
|
-
out << "\t<% if can? :#{action}, #{object} %>\n" if options.with_cancan_check?
|
|
157
|
-
unless action == :destroy
|
|
158
|
-
out << "\t\t<%= link_to '#{link_text}', #{link_path} %>\n"
|
|
159
|
-
else
|
|
160
|
-
out << "\t\t<%= link_to '#{link_text}', #{link_path}, :confirm => 'Are you sure?', :method => :delete %>\n"
|
|
161
|
-
end
|
|
162
|
-
out << "\t<% end %>" if options.with_cancan_check?
|
|
163
|
-
out.html_safe
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
def form_partial?
|
|
167
|
-
actions? :new, :edit
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
def all_actions
|
|
171
|
-
%w[index show new create edit update destroy]
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
def action?(name)
|
|
175
|
-
controller_actions.include? name.to_s
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
def actions?(*names)
|
|
179
|
-
names.all? { |name| action? name }
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
def singular_table_name
|
|
183
|
-
scaffold_name.pluralize.singularize
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
def singular_name
|
|
187
|
-
scaffold_name.underscore
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
def plural_name
|
|
191
|
-
scaffold_name.underscore.pluralize
|
|
192
|
-
end
|
|
55
|
+
private
|
|
193
56
|
|
|
194
|
-
def
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
def class_name
|
|
201
|
-
if @namespace_model
|
|
202
|
-
scaffold_name.camelize
|
|
203
|
-
else
|
|
204
|
-
scaffold_name.split('::').last.camelize
|
|
57
|
+
def generate_model
|
|
58
|
+
begin
|
|
59
|
+
template "models/#{@orm}/model.rb", model_name(:path)
|
|
60
|
+
rescue Exception => e
|
|
61
|
+
raise e
|
|
205
62
|
end
|
|
206
63
|
end
|
|
207
|
-
|
|
208
|
-
def
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
plural_name.camelize
|
|
214
|
-
end
|
|
215
|
-
|
|
216
|
-
def instance_name
|
|
217
|
-
if @namespace_model
|
|
218
|
-
singular_name.gsub('/','_')
|
|
219
|
-
else
|
|
220
|
-
singular_name.split('/').last
|
|
64
|
+
|
|
65
|
+
def generate_migration
|
|
66
|
+
begin
|
|
67
|
+
migration_template "models/#{@orm}/migration.rb", migration_name(:path)
|
|
68
|
+
rescue Exception => e
|
|
69
|
+
raise e
|
|
221
70
|
end
|
|
222
71
|
end
|
|
223
|
-
|
|
224
|
-
def
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
controller_actions.map do |action|
|
|
230
|
-
read_template("#{dir_name}/#{action}.rb")
|
|
231
|
-
end.join("\n").strip
|
|
232
|
-
end
|
|
233
|
-
|
|
234
|
-
def render_form
|
|
235
|
-
if form_partial?
|
|
236
|
-
if options.haml?
|
|
237
|
-
"= render 'form'"
|
|
238
|
-
else
|
|
239
|
-
"<%= render 'form' %>"
|
|
240
|
-
end
|
|
241
|
-
else
|
|
242
|
-
read_template("views/#{view_language}/_form.html.#{view_language}")
|
|
72
|
+
|
|
73
|
+
def generate_controller
|
|
74
|
+
begin
|
|
75
|
+
template "controllers/#{@orm}/controller.rb", controller_name(:path)
|
|
76
|
+
rescue Exception => e
|
|
77
|
+
raise e
|
|
243
78
|
end
|
|
244
79
|
end
|
|
245
|
-
|
|
246
|
-
def render_table
|
|
247
|
-
if options.haml?
|
|
248
|
-
"= render 'table'"
|
|
249
|
-
else
|
|
250
|
-
"<%= render 'table' %>"
|
|
251
|
-
end
|
|
252
|
-
end
|
|
253
80
|
|
|
254
|
-
def
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
if action? :index
|
|
260
|
-
"#{item_resource.pluralize}_path"
|
|
261
|
-
else
|
|
262
|
-
"root_path"
|
|
81
|
+
def generate_helper
|
|
82
|
+
begin
|
|
83
|
+
template 'helpers/helper.rb', helper_name(:path)
|
|
84
|
+
rescue Exception => e
|
|
85
|
+
raise e
|
|
263
86
|
end
|
|
264
87
|
end
|
|
265
|
-
|
|
266
|
-
def
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
else
|
|
276
|
-
name
|
|
88
|
+
|
|
89
|
+
def generate_views
|
|
90
|
+
begin
|
|
91
|
+
controller_actions.each do |action|
|
|
92
|
+
unless action == 'create' || action == 'update' || action == 'destroy'
|
|
93
|
+
template "views/#{action}.html.erb", "app/views/#{plural_name}/#{action}.html.erb"
|
|
94
|
+
if action == 'index'
|
|
95
|
+
template "views/index.js.erb", "app/views/#{plural_name}/index.js.erb"
|
|
96
|
+
template "views/_table.html.erb", "app/views/#{plural_name}/_table.html.erb"
|
|
97
|
+
end
|
|
277
98
|
end
|
|
278
99
|
end
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
def item_url
|
|
285
|
-
if action? :show
|
|
286
|
-
item_resource + '_url'
|
|
287
|
-
else
|
|
288
|
-
items_url
|
|
289
|
-
end
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
def items_url
|
|
293
|
-
if action? :index
|
|
294
|
-
item_resource.pluralize + '_url'
|
|
295
|
-
else
|
|
296
|
-
"root_url"
|
|
297
|
-
end
|
|
298
|
-
end
|
|
299
|
-
|
|
300
|
-
def item_path_for_spec(suffix = 'path')
|
|
301
|
-
if action? :show
|
|
302
|
-
"#{item_resource}_#{suffix}(assigns[:#{instance_name}])"
|
|
303
|
-
else
|
|
304
|
-
if suffix == 'path'
|
|
305
|
-
items_path
|
|
306
|
-
else
|
|
307
|
-
items_url
|
|
308
|
-
end
|
|
309
|
-
end
|
|
310
|
-
end
|
|
311
|
-
|
|
312
|
-
def item_path_for_test(suffix = 'path')
|
|
313
|
-
if action? :show
|
|
314
|
-
"#{item_resource}_#{suffix}(assigns(:#{instance_name}))"
|
|
315
|
-
else
|
|
316
|
-
if suffix == 'path'
|
|
317
|
-
items_path
|
|
318
|
-
else
|
|
319
|
-
items_url
|
|
100
|
+
|
|
101
|
+
if actions? :new, :edit
|
|
102
|
+
template "views/_form.html.erb", "app/views/#{plural_name}/_form.html.erb"
|
|
320
103
|
end
|
|
104
|
+
rescue Exception => e
|
|
105
|
+
raise e
|
|
321
106
|
end
|
|
322
107
|
end
|
|
323
|
-
|
|
324
|
-
def
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
options.haml? ? 'haml' : 'erb'
|
|
332
|
-
end
|
|
333
|
-
|
|
334
|
-
def test_framework
|
|
335
|
-
return @test_framework if defined?(@test_framework)
|
|
336
|
-
if options.testunit?
|
|
337
|
-
return @test_framework = :testunit
|
|
338
|
-
elsif options.rspec?
|
|
339
|
-
return @test_framework = :rspec
|
|
340
|
-
elsif options.shoulda?
|
|
341
|
-
return @test_framework = :shoulda
|
|
342
|
-
else
|
|
343
|
-
return @test_framework = default_test_framework
|
|
344
|
-
end
|
|
345
|
-
end
|
|
346
|
-
|
|
347
|
-
def default_test_framework
|
|
348
|
-
File.exist?(destination_path("spec")) ? :rspec : :testunit
|
|
349
|
-
end
|
|
350
|
-
|
|
351
|
-
def model_exists?
|
|
352
|
-
File.exist? destination_path("app/models/#{singular_name}.rb")
|
|
108
|
+
|
|
109
|
+
def generate_test_unit
|
|
110
|
+
template "test/test_unit/controller.rb", "test/functional/#{plural_name}_controller_test.rb"
|
|
111
|
+
template "test/test_unit/fixtures.yml", "test/fixtures/#{plural_name}.yml"
|
|
112
|
+
template "test/test_unit/model.rb", "test/unit/#{singular_name}_test.rb"
|
|
113
|
+
template "test/test_unit/helper.rb", "test/unit/helpers/#{plural_name}_helper_test.rb"
|
|
114
|
+
rescue Exception => e
|
|
115
|
+
raise e
|
|
353
116
|
end
|
|
354
|
-
|
|
355
|
-
def
|
|
356
|
-
|
|
117
|
+
|
|
118
|
+
def generate_specs
|
|
119
|
+
template "test/rspec/controller.rb", "spec/controllers/#{plural_name}_controller_spec.rb"
|
|
120
|
+
template "test/rspec/model.rb", "spec/models/#{singular_name}_spec.rb"
|
|
121
|
+
template "test/rspec/helper.rb", "spec/helpers/#{plural_name}_helper_test.rb"
|
|
122
|
+
template "test/rspec/request.rb", "spec/requests/#{singular_name}_spec.rb.rb"
|
|
123
|
+
template "test/rspec/routing.rb", "spec/routing/#{plural_name}_routing_spec.rb"
|
|
124
|
+
template "test/rspec/factories.rb", "spec/support/#{singular_name}_factories.rb"
|
|
125
|
+
rescue Exception => e
|
|
126
|
+
raise e
|
|
357
127
|
end
|
|
358
|
-
|
|
128
|
+
|
|
129
|
+
|
|
359
130
|
# FIXME: Should be proxied to ActiveRecord::Generators::Base
|
|
360
131
|
# Implement the required interface for Rails::Generators::Migration.
|
|
361
132
|
def self.next_migration_number(dirname) #:nodoc:
|
|
362
|
-
|
|
363
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
|
364
|
-
else
|
|
365
|
-
"%.3d" % (current_migration_number(dirname) + 1)
|
|
366
|
-
end
|
|
133
|
+
ActiveRecord::Generators::Base.next_migration_number(dirname)
|
|
367
134
|
end
|
|
368
135
|
end
|
|
369
136
|
end
|