fetty-generators 1.7.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|