mdd 2.0.3 → 3.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/{lib/generators/mdd/.DS_Store → .DS_Store} +0 -0
- data/README.md +1 -1
- data/Rakefile +8 -0
- data/app/helpers/{mdd_helper.rb → mdwa_helper.rb} +1 -1
- data/lib/{generators/mdd/association/templates/.DS_Store → .DS_Store} +0 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/images → mdwa}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/association/USAGE +5 -5
- data/lib/generators/mdwa/association/association_generator.rb +152 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/javascripts → mdwa/association/templates}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/association/templates/migrate/many_to_many.rb +0 -0
- data/lib/generators/{mdd → mdwa}/association/templates/migrate/one_field.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/USAGE +1 -1
- data/lib/generators/{mdd → mdwa}/sandbox/sandbox_generator.rb +5 -4
- data/lib/generators/{mdd/sandbox/templates/app/assets/javascripts/mdwa → mdwa/sandbox/templates/app/assets/images}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/ajax-loader.gif +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/backend_bg.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/barra-16.gif +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/bg_ip.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/bg_left.jpg +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/bg_window_header.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/bt_g.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/button_submit.gif +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/fancybox_loading.gif +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/fancybox_sprite.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/headerbg.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/add.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/delete.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/dropdown.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/edit.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/lupa.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/remove-icon.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/notice_close.png +0 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/stylesheets → mdwa/sandbox/templates/app/assets/javascripts}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery-ui.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.bgiframe.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.easing.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.fancybox.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.hover_intent.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.mousewheel.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.popup_window.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.validate.js +0 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/stylesheets/jquery → mdwa/sandbox/templates/app/assets/javascripts/mdwa}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/login_manifest.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/public_manifest.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/system_manifest.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/template/ajaxloader.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/template/all_pages.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/template/clicable_title.js +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/template/pagination.js +0 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/stylesheets/mdwa → mdwa/sandbox/templates/app/assets/stylesheets}/.DS_Store +0 -0
- data/lib/generators/{mdd/sandbox/templates/app/assets/stylesheets/mdwa/template → mdwa/sandbox/templates/app/assets/stylesheets/jquery}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/jquery/jquery-ui-theme1.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/jquery/jquery.fancybox.css +0 -0
- data/lib/generators/{mdd/sandbox/templates/db/seeds → mdwa/sandbox/templates/app/assets/stylesheets/mdwa}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/login/login.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/login_manifest.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/public_manifest.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/system_manifest.css +0 -0
- data/lib/generators/{mdd/scaffold/templates → mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/backend.css.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/cssbase.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/grid.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/leftbar.css.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/reset.css +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/template.css.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/administrators_controller.rb +2 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/backend_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/home_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/users/passwords_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/users/sessions_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/public_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/models/ability.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/models/administrator.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/models/permission.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/models/user.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/_administrators.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/_form.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/edit.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/index.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/home/index.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/_welcome.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/confirmations/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/mailer/confirmation_instructions.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/mailer/reset_password_instructions.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/mailer/unlock_instructions.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/passwords/edit.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/passwords/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/registrations/edit.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/registrations/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/sessions/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/shared/_links.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/unlocks/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/layouts/login.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/layouts/public.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/layouts/system.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/public/index.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/template/_leftbar.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/config/initializers/devise.rb +0 -0
- data/lib/generators/{mdd/sandbox/templates/config/initializers/mdd_inflections.rb → mdwa/sandbox/templates/config/initializers/mdwa_inflections.rb} +0 -0
- data/lib/generators/mdwa/sandbox/templates/config/initializers/mdwa_layout.rb +8 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/config/initializers/will_paginate.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/config/locales/devise.en.yml +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/config/locales/mdwa.en.yml +2 -0
- data/lib/generators/mdwa/sandbox/templates/config/locales/mdwa_model_specific.en.yml +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/db/migrate/create_permissions.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/db/migrate/create_user_permissions.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/db/migrate/devise_create_users.rb +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/db/seeds.rb +0 -0
- data/lib/generators/{mdd/scaffold/templates/db_migrate → mdwa/sandbox/templates/db/seeds}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/sandbox/templates/db/seeds/site.rb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/USAGE +10 -10
- data/lib/generators/{mdd → mdwa}/scaffold/scaffold_generator.rb +11 -12
- data/lib/{mdd → generators/mdwa/scaffold/templates}/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/controllers/ajax_controller.rb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/controllers/controller.rb +0 -0
- data/lib/generators/mdwa/scaffold/templates/db_migrate/.DS_Store +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/db_migrate/migrate.rb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/models/model.rb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/models/module.rb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/_form.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/_form_fields.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/_list.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/create.js.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/destroy.js.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/edit.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/index.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/index.js.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/new.html.erb +0 -0
- data/lib/generators/{mdd → mdwa}/scaffold/templates/views/show.html.erb +0 -0
- data/lib/mdd.rb +4 -19
- data/lib/mdwa.rb +6 -0
- data/lib/mdwa/.DS_Store +0 -0
- data/lib/mdwa/all.rb +5 -0
- data/lib/mdwa/dsl.rb +9 -0
- data/lib/mdwa/dsl/.DS_Store +0 -0
- data/lib/mdwa/dsl/entities.rb +45 -0
- data/lib/mdwa/dsl/entity.rb +41 -0
- data/lib/mdwa/generators.rb +10 -0
- data/lib/mdwa/generators/.DS_Store +0 -0
- data/lib/{mdd → mdwa}/generators/model.rb +2 -1
- data/lib/mdwa/generators/model_association.rb +77 -0
- data/lib/{mdd → mdwa}/generators/model_attribute.rb +4 -6
- data/lib/mdwa/layout.rb +18 -0
- data/lib/mdwa/layout/.DS_Store +0 -0
- data/lib/{mdd → mdwa}/layout/base.rb +3 -1
- data/lib/{mdd → mdwa}/layout/helper.rb +5 -2
- data/lib/mdwa/version.rb +4 -0
- data/mdd.gemspec +3 -2
- data/test/entity_test.rb +67 -0
- data/test/generators_test.rb +0 -0
- data/test/layout_test.rb +59 -0
- metadata +184 -148
- data/lib/generators/mdd/association/association_generator.rb +0 -157
- data/lib/generators/mdd/sandbox/templates/config/initializers/mdd_layout.rb +0 -7
- data/lib/mdd/version.rb +0 -3
|
File without changes
|
data/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Run the bundle command to install it.
|
|
|
22
22
|
After you install MDD and add it to your Gemfile, you need to run the generator:
|
|
23
23
|
|
|
24
24
|
```console
|
|
25
|
-
rails generate
|
|
25
|
+
rails generate mdwa:sandbox
|
|
26
26
|
```
|
|
27
27
|
This generator will setup the clean sandbox environment with:
|
|
28
28
|
|
data/Rakefile
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -3,20 +3,20 @@ Description:
|
|
|
3
3
|
Use the model class name.
|
|
4
4
|
|
|
5
5
|
Example:
|
|
6
|
-
rails g
|
|
6
|
+
rails g mdwa:association Library has_many Books
|
|
7
7
|
|
|
8
|
-
rails g
|
|
8
|
+
rails g mdwa:association Book belongs_to Library --with-opposite
|
|
9
9
|
Generates the first example as the opposite
|
|
10
10
|
|
|
11
|
-
rails g
|
|
11
|
+
rails g mdwa:association Company nested_one Address
|
|
12
12
|
Creates address_id in migration and belongs_to :address and accepts_nested_attrs in Company model
|
|
13
13
|
Creates has_one :company in Address model if opposite requested
|
|
14
14
|
|
|
15
|
-
rails g
|
|
15
|
+
rails g mdwa:association Sale nested_many SaleItem
|
|
16
16
|
Creates sale_id and belongs_to in SaleItem
|
|
17
17
|
Creates has_many and accepts_nested_attrs in Sale
|
|
18
18
|
|
|
19
|
-
rails g
|
|
19
|
+
rails g mdwa:association User has_and_belongs_to_many Project
|
|
20
20
|
Creates the join table projects_users
|
|
21
21
|
Creates has_and_belongs_to_many association in both models
|
|
22
22
|
The generated code indicates the join_table parameter, because often users have many to many associations and may be inheritance involved.
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'rails/generators'
|
|
4
|
+
require 'rails/generators/migration'
|
|
5
|
+
require 'mdwa/generators'
|
|
6
|
+
|
|
7
|
+
module Mdwa
|
|
8
|
+
module Generators
|
|
9
|
+
class AssociationGenerator < Rails::Generators::Base
|
|
10
|
+
|
|
11
|
+
include Rails::Generators::Migration
|
|
12
|
+
|
|
13
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
14
|
+
|
|
15
|
+
attr_accessor :model1, :attribute, :model2, :pending_migrations
|
|
16
|
+
|
|
17
|
+
argument :model1, :type => :string, :banner => "First part of relation"
|
|
18
|
+
argument :relation, :type => :string, :banner => "has_many, belongs, has_one, nested_many, nested_one..."
|
|
19
|
+
argument :model2, :type => :string, :banner => "Second part of relation"
|
|
20
|
+
|
|
21
|
+
class_option :with_opposite, :desc => 'Generate the opposite relation too. For example, the oposite of belongs_to is has_many.', :type => :boolean, :default => false
|
|
22
|
+
class_option :skip_rake_migrate, :desc => 'Skips rake db:migrate', :type => :boolean, :default => false
|
|
23
|
+
class_option :skip_migrations, :desc => 'Skips migration files', :type => :boolean, :default => false
|
|
24
|
+
class_option :ask, :desc => 'Asks if the opposite should be generated.', :type => :boolean, :default => false
|
|
25
|
+
|
|
26
|
+
def initialize(*args, &block)
|
|
27
|
+
|
|
28
|
+
super
|
|
29
|
+
|
|
30
|
+
@association = Generators::ModelAssocation.new(model1, model2, relation)
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def model
|
|
36
|
+
if @association.belongs_to?
|
|
37
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
38
|
+
ret = []
|
|
39
|
+
ret << "\n\tbelongs_to :#{@association.model2.singular_name}, :class_name => '#{@association.model2.klass}'"
|
|
40
|
+
ret << "\tattr_accessible :#{@association.model2.singular_name.foreign_key}"
|
|
41
|
+
ret.join("\n")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
if @association.has_one?
|
|
45
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
46
|
+
"\n\thas_one :#{@association.model2.singular_name}, :class_name => '#{@association.model2.klass}'\n"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
if @association.has_many?
|
|
50
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
51
|
+
"\n\thas_many :#{@association.model2.plural_name}, :class_name => '#{@association.model2.klass}'\n"
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
if @association.has_and_belongs_to_many?
|
|
55
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
56
|
+
"\n\thas_and_belongs_to_many :#{@association.model2.plural_name}, :join_table => :#{many_to_many_table_name}\n"
|
|
57
|
+
end
|
|
58
|
+
inject_into_class "app/models/#{@association.model2.space}/#{@association.model2.singular_name}.rb", @association.model2.klass.classify.constantize do
|
|
59
|
+
"\n\thas_and_belongs_to_many :#{@association.model1.plural_name}, :join_table => :#{many_to_many_table_name}\n"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
if @association.nested_one?
|
|
63
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
64
|
+
# belongs_to
|
|
65
|
+
# attr_accessible attributes
|
|
66
|
+
# attr_nested_attributes
|
|
67
|
+
"\n\tbelongs_to :#{@association.model2.singular_name}, :class_name => '#{@association.model2.klass}'\n\tattr_accessible :#{@association.model2.singular_name}_attributes, :#{@association.model2.singular_name.foreign_key}\n\taccepts_nested_attributes_for :#{@association.model2.singular_name}, :allow_destroy => true\n"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
if @association.nested_many?
|
|
71
|
+
inject_into_class "app/models/#{@association.model1.space}/#{@association.model1.singular_name}.rb", @association.model1.klass.classify.constantize do
|
|
72
|
+
# belongs_to
|
|
73
|
+
# attr_accessible attributes
|
|
74
|
+
# attr_nested_attributes
|
|
75
|
+
"\n\thas_many :#{@association.model2.plural_name}, :class_name => '#{@association.model2.klass}', :dependent => :destroy\n\tattr_accessible :#{@association.model2.plural_name}_attributes\n\taccepts_nested_attributes_for :#{@association.model2.plural_name}, :allow_destroy => true\n"
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def migrate
|
|
82
|
+
unless options.skip_migrations
|
|
83
|
+
|
|
84
|
+
@pending_migrations = true
|
|
85
|
+
case @association.relation.to_sym
|
|
86
|
+
when :belongs_to, :nested_one
|
|
87
|
+
@table = @association.model1
|
|
88
|
+
@field = @association.model2
|
|
89
|
+
migration_template 'migrate/one_field.rb', "db/migrate/add_#{@field.singular_name.foreign_key}_to_#{@table.plural_name}.rb"
|
|
90
|
+
when :has_and_belongs_to_many
|
|
91
|
+
migration_template 'migrate/many_to_many.rb', "db/migrate/create_#{many_to_many_table_name}.rb"
|
|
92
|
+
else
|
|
93
|
+
@pending_migrations = false
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def run_rake_db_migrate
|
|
101
|
+
rake('db:migrate') if !options.skip_rake_migrate and @pending_migrations and yes? 'Run rake db:migrate?'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def opposite
|
|
105
|
+
|
|
106
|
+
if options.with_opposite or options.ask
|
|
107
|
+
# belongs_to
|
|
108
|
+
if @association.belongs_to? and (options.with_opposite or ( options.ask and yes?("#{@association.model1.name} belongs to #{@association.model2.singular_name}. Create has_many association?") ))
|
|
109
|
+
generate "mdwa:association #{@association.model2.raw} has_many #{@association.model1.raw} #{'--force' if options.force}"
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# has_many
|
|
113
|
+
if @association.has_many? and (options.with_opposite or ( options.ask and yes?("#{@association.model1.name} has many #{@association.model2.plural_name}. Create belongs_to association?") ))
|
|
114
|
+
generate "mdwa:association #{@association.model2.raw} belongs_to #{@association.model1.raw} #{'--force' if options.force}"
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# has_one
|
|
118
|
+
if @association.has_one? and (options.with_opposite or ( options.ask and yes?("#{@association.model1.name} has one #{@association.model2.singular_name}. Create belongs_to association?") ))
|
|
119
|
+
generate "mdwa:association #{@association.model2.raw} belongs_to #{@association.model1.raw} #{'--force' if options.force}"
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# nested_many
|
|
123
|
+
if @association.nested_many? and (options.with_opposite or ( options.ask and yes?("#{@association.model1.name} has many (nested) with #{@association.model2.plural_name}. Create belongs_to association?") ))
|
|
124
|
+
generate "mdwa:association #{@association.model2.raw} belongs_to #{@association.model1.raw} #{'--force' if options.force}"
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# nested_one
|
|
128
|
+
if @association.nested_one? and (options.with_opposite or ( options.ask and yes?("#{@association.model1.name} belongs nested to #{@association.model2.singular_name}. Create has_one association?") ))
|
|
129
|
+
generate "mdwa:association #{@association.model2.raw} has_one #{@association.model1.raw} #{'--force' if options.force}"
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Implement the required interface for Rails::Generators::Migration.
|
|
136
|
+
def self.next_migration_number(dirname)
|
|
137
|
+
if ActiveRecord::Base.timestamped_migrations
|
|
138
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S").to_s
|
|
139
|
+
else
|
|
140
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
private
|
|
145
|
+
def many_to_many_table_name
|
|
146
|
+
"#{@association.ordered.first.plural_name}_#{@association.ordered.last.plural_name}"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -6,4 +6,4 @@ Description:
|
|
|
6
6
|
Referenced models also have their relations configured in models and views.
|
|
7
7
|
|
|
8
8
|
Example:
|
|
9
|
-
rails generate
|
|
9
|
+
rails generate mdwa:scaffold Model name:string initial_date:date category_id:category:name:belongs
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require 'rails/generators'
|
|
4
4
|
require 'rails/generators/migration'
|
|
5
5
|
|
|
6
|
-
module
|
|
6
|
+
module Mdwa
|
|
7
7
|
module Generators
|
|
8
8
|
class SandboxGenerator < Rails::Generators::Base
|
|
9
9
|
|
|
@@ -112,13 +112,14 @@ module Mdd
|
|
|
112
112
|
def config
|
|
113
113
|
# initializers
|
|
114
114
|
copy_file 'config/initializers/devise.rb', 'config/initializers/mdwa_devise.rb'
|
|
115
|
-
copy_file 'config/initializers/
|
|
116
|
-
copy_file 'config/initializers/
|
|
117
|
-
copy_file 'config/initializers/will_paginate.rb', 'config/initializers/
|
|
115
|
+
copy_file 'config/initializers/mdwa_inflections.rb', 'config/initializers/mdwa_inflections.rb'
|
|
116
|
+
copy_file 'config/initializers/mdwa_layout.rb', 'config/initializers/mdwa_layout.rb'
|
|
117
|
+
copy_file 'config/initializers/will_paginate.rb', 'config/initializers/mdwa_will_paginate.rb'
|
|
118
118
|
|
|
119
119
|
# language files
|
|
120
120
|
copy_file 'config/locales/devise.en.yml', 'config/locales/devise.en.yml'
|
|
121
121
|
copy_file 'config/locales/mdwa.en.yml', 'config/locales/mdwa.en.yml'
|
|
122
|
+
copy_file 'config/locales/mdwa.en.yml', 'config/locales/mdwa_model_specific.en.yml'
|
|
122
123
|
end
|
|
123
124
|
|
|
124
125
|
def routes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/bg_window_header.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/fancybox_loading.gif
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/fancybox_sprite.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/dropdown.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/images/mdwa/icons/remove-icon.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery-ui.js
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.bgiframe.js
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.easing.js
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.fancybox.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/jquery/jquery.validate.js
RENAMED
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/login_manifest.js
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/public_manifest.js
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/system_manifest.js
RENAMED
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/javascripts/mdwa/template/all_pages.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/jquery/jquery.fancybox.css
RENAMED
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/login/login.css
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/login_manifest.css
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/public_manifest.css
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/system_manifest.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/cssbase.css
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/grid.css
RENAMED
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/assets/stylesheets/mdwa/template/reset.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/users/passwords_controller.rb
RENAMED
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/controllers/a/users/sessions_controller.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/_form.html.erb
RENAMED
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/administrators/index.html.erb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/generators/{mdd → mdwa}/sandbox/templates/app/views/a/users/confirmations/new.html.erb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|