mdd 3.0.2 → 3.0.3

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.
Files changed (77) hide show
  1. data/app/helpers/mdwa_helper.rb +2 -1
  2. data/lib/generators/mdwa/association/association_generator.rb +1 -1
  3. data/lib/generators/mdwa/association/templates/migrate/many_to_many.rb +1 -1
  4. data/lib/generators/mdwa/association/templates/migrate/one_field.rb +2 -1
  5. data/lib/generators/mdwa/code/code_generator.rb +54 -22
  6. data/lib/generators/mdwa/code/templates/migration.rb +2 -1
  7. data/lib/generators/mdwa/entity/entity_generator.rb +1 -2
  8. data/lib/generators/mdwa/entity/templates/entity.rb +2 -1
  9. data/lib/generators/mdwa/from_requirements/from_requirements_generator.rb +56 -0
  10. data/lib/generators/mdwa/process/USAGE +4 -0
  11. data/lib/generators/mdwa/process/process_generator.rb +24 -0
  12. data/lib/generators/mdwa/process/templates/process.rb +49 -0
  13. data/lib/generators/mdwa/requirement/USAGE +4 -0
  14. data/lib/generators/mdwa/requirement/requirement_generator.rb +24 -0
  15. data/lib/generators/mdwa/requirement/templates/requirement.rb +21 -0
  16. data/lib/generators/mdwa/sandbox/sandbox_generator.rb +1 -1
  17. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/backend.css.erb +2 -2
  18. data/lib/generators/mdwa/sandbox/templates/app/controllers/a/backend_controller.rb +2 -1
  19. data/lib/generators/mdwa/sandbox/templates/app/controllers/a/users/sessions_controller.rb +1 -1
  20. data/lib/generators/mdwa/sandbox/templates/app/controllers/public_controller.rb +1 -0
  21. data/lib/generators/mdwa/sandbox/templates/config/initializers/devise.rb +1 -0
  22. data/lib/generators/mdwa/sandbox/templates/config/initializers/mdwa_layout.rb +2 -1
  23. data/lib/generators/mdwa/sandbox/templates/config/locales/mdwa.en.yml +1 -1
  24. data/lib/generators/mdwa/sandbox/templates/db/migrate/devise_create_users.rb +1 -1
  25. data/lib/generators/mdwa/sandbox/templates/db/seeds.rb +1 -1
  26. data/lib/generators/mdwa/sandbox/templates/db/seeds/site.rb +1 -1
  27. data/lib/generators/mdwa/scaffold/scaffold_generator.rb +10 -3
  28. data/lib/generators/mdwa/scaffold/templates/controllers/ajax_controller.rb +2 -1
  29. data/lib/generators/mdwa/scaffold/templates/controllers/controller.rb +2 -1
  30. data/lib/generators/mdwa/scaffold/templates/db_migrate/migrate.rb +2 -1
  31. data/lib/generators/mdwa/scaffold/templates/models/model.rb +2 -1
  32. data/lib/generators/mdwa/scaffold/templates/models/module.rb +2 -1
  33. data/lib/generators/mdwa/user/templates/user.rb +12 -0
  34. data/lib/generators/mdwa/user/user_generator.rb +13 -104
  35. data/lib/generators/mdwa/{user → user_scaffold}/USAGE +1 -1
  36. data/lib/generators/mdwa/{user → user_scaffold}/templates/controllers/ajax_controller.rb +2 -1
  37. data/lib/generators/mdwa/{user → user_scaffold}/templates/controllers/controller.rb +2 -1
  38. data/lib/generators/mdwa/{user → user_scaffold}/templates/migrate.rb +2 -1
  39. data/lib/generators/mdwa/{user → user_scaffold}/templates/views/update.js.erb +0 -0
  40. data/lib/generators/mdwa/user_scaffold/user_scaffold_generator.rb +139 -0
  41. data/lib/mdd.rb +1 -1
  42. data/lib/mdwa.rb +1 -1
  43. data/lib/mdwa/all.rb +1 -1
  44. data/lib/mdwa/dsl.rb +17 -4
  45. data/lib/mdwa/dsl/action.rb +78 -0
  46. data/lib/mdwa/dsl/entities.rb +4 -4
  47. data/lib/mdwa/dsl/entity.rb +59 -23
  48. data/lib/mdwa/dsl/entity_actions.rb +73 -0
  49. data/lib/mdwa/dsl/entity_association.rb +1 -1
  50. data/lib/mdwa/dsl/entity_attribute.rb +1 -1
  51. data/lib/mdwa/dsl/entity_specification.rb +22 -0
  52. data/lib/mdwa/dsl/process.rb +53 -0
  53. data/lib/mdwa/dsl/process_detail.rb +57 -0
  54. data/lib/mdwa/dsl/process_detail_next_action.rb +16 -0
  55. data/lib/mdwa/dsl/requirement.rb +23 -0
  56. data/lib/mdwa/dsl/requirements.rb +57 -0
  57. data/lib/mdwa/dsl/user.rb +34 -0
  58. data/lib/mdwa/dsl/users.rb +57 -0
  59. data/lib/mdwa/dsl/workflow.rb +57 -0
  60. data/lib/mdwa/generators.rb +1 -1
  61. data/lib/mdwa/generators/model.rb +3 -1
  62. data/lib/mdwa/generators/model_association.rb +4 -1
  63. data/lib/mdwa/generators/model_attribute.rb +2 -1
  64. data/lib/mdwa/layout.rb +1 -1
  65. data/lib/mdwa/layout/base.rb +1 -1
  66. data/lib/mdwa/layout/helper.rb +1 -1
  67. data/lib/mdwa/version.rb +1 -1
  68. data/test/entity_actions_test.rb +101 -0
  69. data/test/entity_specifications_test.rb +37 -0
  70. data/test/entity_test.rb +1 -1
  71. data/test/layout_test.rb +1 -1
  72. data/test/process_test.rb +86 -0
  73. data/test/requirements_test.rb +44 -0
  74. data/test/users_test.rb +55 -0
  75. metadata +37 -10
  76. data/lib/mdwa/dsl/generator.rb +0 -10
  77. data/test/generators_test.rb +0 -0
@@ -0,0 +1,37 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe MDWA::DSL::Entity do
8
+
9
+ before do
10
+ MDWA::DSL.entities.register 'Spec' do |e|
11
+ e.resource = true
12
+
13
+ e.specify "fields should not be invalid" do |s|
14
+ s.such_as "date should be valid"
15
+ s.such_as "administrator must not be empty"
16
+ s.such_as "description must not be empty"
17
+ end
18
+ e.specify "date should not be in the past"
19
+ end
20
+ end
21
+
22
+ it 'should store specifications correctly' do
23
+
24
+ entity = MDWA::DSL.entity('Spec')
25
+ entity.specifications.count.must_equal 2
26
+ entity.specifications.first.details.count.must_equal 3
27
+ entity.specifications.last.details.count.must_equal 0
28
+
29
+ entity.specifications.first.description.must_equal "fields should not be invalid"
30
+ entity.specifications.first.details[0].must_equal "date should be valid"
31
+ entity.specifications.first.details[1].must_equal "administrator must not be empty"
32
+ entity.specifications.first.details[2].must_equal "description must not be empty"
33
+ entity.specifications.last.description.must_equal "date should not be in the past"
34
+
35
+ end
36
+
37
+ end
data/test/entity_test.rb CHANGED
@@ -239,4 +239,4 @@ describe MDWA::DSL::Entities do
239
239
  task.generate.must_equal nil
240
240
  end
241
241
 
242
- end
242
+ end
data/test/layout_test.rb CHANGED
@@ -56,4 +56,4 @@ describe MDWA::Layout::Base do
56
56
  MDWA::Layout::Base.select_layout("/a/users/sessions#other_method").must_equal 'other_layout'
57
57
  end
58
58
 
59
- end
59
+ end
@@ -0,0 +1,86 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe MDWA::DSL::Workflow do
8
+
9
+ before do
10
+ MDWA::DSL.workflow.register 'Manage projects' do |p|
11
+
12
+ # The process start point for every user role
13
+ # Params: :user_role, alias or entity listing
14
+ p.start_for 'ProjectManager', 'new_project_group'
15
+ p.start_for 'TeamMember', 'new_task'
16
+
17
+ p.detail 'New Project Group' do |d|
18
+ d.user_roles = ['ProjectManager']
19
+ d.action 'project_group', 'new'
20
+ d.next_action 'create_project_group', :method => :post
21
+ end
22
+
23
+ p.detail "Create project group" do |d|
24
+
25
+ d.user_roles = ['ProjectManager', 'TeamMember']
26
+ d.action 'project_group', 'create'
27
+
28
+ d.next_action 'new_project_group', :when => 'save failed'
29
+ d.next_action 'project_group_list', :redirect => true, :when => 'save ok'
30
+ d.next_action 'new_project', :when => 'clicked save & new project'
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+
37
+
38
+ it "should store data correctly" do
39
+ MDWA::DSL.workflow.all.count.must_equal 1
40
+ p = MDWA::DSL.process 'manage_projects'
41
+
42
+ p.nil?.must_equal false
43
+ p.start_for_roles.count.must_equal 2
44
+ p.start_for_roles['ProjectManager'].must_equal 'new_project_group'
45
+ p.start_for_roles['TeamMember'].must_equal 'new_task'
46
+
47
+ p.details.count.must_equal 2
48
+ p.details['new_project_group'].must_be_instance_of MDWA::DSL::ProcessDetail
49
+ p.details['new_project_group'].description.must_equal 'New Project Group'
50
+ p.details['new_project_group'].user_roles.count.must_equal 1
51
+ p.details['new_project_group'].user_roles.first.must_equal 'ProjectManager'
52
+ p.details['new_project_group'].detail_action.entity.must_equal 'project_group'
53
+ p.details['new_project_group'].detail_action.action.must_equal 'new'
54
+ p.details['new_project_group'].next_actions.count.must_equal 1
55
+ p.details['new_project_group'].next_actions.first.must_be_instance_of MDWA::DSL::ProcessDetailNextAction
56
+
57
+ p.details['create_project_group'].must_be_instance_of MDWA::DSL::ProcessDetail
58
+ p.details['create_project_group'].description.must_equal 'Create project group'
59
+ p.details['create_project_group'].user_roles.count.must_equal 2
60
+ p.details['create_project_group'].user_roles.first.must_equal 'ProjectManager'
61
+ p.details['create_project_group'].user_roles.last.must_equal 'TeamMember'
62
+ p.details['create_project_group'].detail_action.entity.must_equal 'project_group'
63
+ p.details['create_project_group'].detail_action.action.must_equal 'create'
64
+ p.details['create_project_group'].next_actions.count.must_equal 3
65
+ p.details['create_project_group'].next_actions[0].must_be_instance_of MDWA::DSL::ProcessDetailNextAction
66
+ p.details['create_project_group'].next_actions[1].must_be_instance_of MDWA::DSL::ProcessDetailNextAction
67
+ p.details['create_project_group'].next_actions[2].must_be_instance_of MDWA::DSL::ProcessDetailNextAction
68
+
69
+ # next actions
70
+ p.details['new_project_group'].next_actions.first.alias.must_equal 'create_project_group'
71
+ p.details['new_project_group'].next_actions.first.method.must_equal :post
72
+ p.details['new_project_group'].next_actions.first.request.must_equal :html
73
+
74
+ p.details['create_project_group'].next_actions[0].alias.must_equal 'new_project_group'
75
+ p.details['create_project_group'].next_actions[0].when.must_equal 'save failed'
76
+ p.details['create_project_group'].next_actions[0].redirect.must_equal false
77
+ p.details['create_project_group'].next_actions[1].alias.must_equal 'project_group_list'
78
+ p.details['create_project_group'].next_actions[1].when.must_equal 'save ok'
79
+ p.details['create_project_group'].next_actions[1].redirect.must_equal true
80
+ p.details['create_project_group'].next_actions[2].alias.must_equal 'new_project'
81
+ p.details['create_project_group'].next_actions[2].when.must_equal 'clicked save & new project'
82
+ p.details['create_project_group'].next_actions[2].redirect.must_equal false
83
+
84
+ end
85
+
86
+ end
@@ -0,0 +1,44 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe MDWA::DSL::Entity do
8
+
9
+ before do
10
+ MDWA::DSL.requirements.register do |r|
11
+ r.summary = 'Manage Projects'
12
+
13
+ r.description = %q{Detailed description of the requirement.}
14
+ r.entities = ['ProjectGroup', 'Project', 'Task', 'Milestone']
15
+ r.users = ['Administrator', 'TeamMember']
16
+ end
17
+
18
+ MDWA::DSL.requirements.register 'Manage clients' do |r|
19
+ r.alias = 'clients'
20
+ end
21
+ end
22
+
23
+ it 'should store data correctly' do
24
+
25
+ requirement = MDWA::DSL.requirement('manage_projects')
26
+ requirement.summary.must_equal 'Manage Projects'
27
+ requirement.description.must_equal 'Detailed description of the requirement.'
28
+ requirement.entities.count.must_equal 4
29
+ requirement.entities[0].must_equal 'ProjectGroup'
30
+ requirement.entities[1].must_equal 'Project'
31
+ requirement.entities[2].must_equal 'Task'
32
+ requirement.entities[3].must_equal 'Milestone'
33
+ requirement.users.count.must_equal 2
34
+ requirement.users[0].must_equal 'Administrator'
35
+ requirement.users[1].must_equal 'TeamMember'
36
+
37
+ requirement_client = MDWA::DSL.requirement('clients')
38
+ requirement_client.nil?.must_equal false
39
+ requirement_client.summary.must_equal 'Manage clients'
40
+ requirement_client.alias.must_equal 'clients'
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,55 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe MDWA::Layout::Base do
8
+
9
+ before do
10
+
11
+ MDWA::DSL.users.register 'Administrator' do |u|
12
+ u.description = 'Administrator and super user of the system.'
13
+
14
+ u.user_roles = ['Administrator', 'SuperAdmin', 'Director']
15
+ end
16
+
17
+ MDWA::DSL.users.register 'Programmer' do |u|
18
+ u.user_roles = 'Tester'
19
+ end
20
+
21
+ MDWA::DSL.users.register 'Tester' do |u|
22
+ end
23
+
24
+ end
25
+
26
+ it "should store correct values" do
27
+
28
+ administrator = MDWA::DSL.user 'Administrator'
29
+ programmer = MDWA::DSL.user 'Programmer'
30
+ tester = MDWA::DSL.user 'Tester'
31
+
32
+ MDWA::DSL.users.all.count.must_equal 3
33
+
34
+ administrator.name.must_equal 'Administrator'
35
+ administrator.description.must_equal 'Administrator and super user of the system.'
36
+ administrator.user_roles.count.must_equal 3
37
+ administrator.user_roles.include?( 'SuperAdmin' ).must_equal true
38
+ administrator.user_roles.include?( 'Director' ).must_equal true
39
+ administrator.user_roles.include?( 'Administrator' ).must_equal true
40
+ administrator.user_roles.include?( 'Manager' ).must_equal false
41
+
42
+ programmer.name.must_equal 'Programmer'
43
+ programmer.description.blank?.must_equal true
44
+ programmer.user_roles.count.must_equal 2
45
+ programmer.user_roles.include?('Programmer').must_equal true
46
+ programmer.user_roles.include?('Tester').must_equal true
47
+ programmer.user_roles.include?('Director').must_equal false
48
+
49
+ tester.name.must_equal 'Tester'
50
+ tester.user_roles.count.must_equal 1
51
+ tester.user_roles.include?('Tester').must_equal true
52
+
53
+ end
54
+
55
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdd
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-17 00:00:00.000000000 Z
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -172,6 +172,13 @@ files:
172
172
  - lib/generators/mdwa/entity/USAGE
173
173
  - lib/generators/mdwa/entity/entity_generator.rb
174
174
  - lib/generators/mdwa/entity/templates/entity.rb
175
+ - lib/generators/mdwa/from_requirements/from_requirements_generator.rb
176
+ - lib/generators/mdwa/process/USAGE
177
+ - lib/generators/mdwa/process/process_generator.rb
178
+ - lib/generators/mdwa/process/templates/process.rb
179
+ - lib/generators/mdwa/requirement/USAGE
180
+ - lib/generators/mdwa/requirement/requirement_generator.rb
181
+ - lib/generators/mdwa/requirement/templates/requirement.rb
175
182
  - lib/generators/mdwa/sandbox/USAGE
176
183
  - lib/generators/mdwa/sandbox/sandbox_generator.rb
177
184
  - lib/generators/mdwa/sandbox/templates/app/assets/images/.DS_Store
@@ -306,23 +313,35 @@ files:
306
313
  - lib/generators/mdwa/scaffold/templates/views/index.js.erb
307
314
  - lib/generators/mdwa/scaffold/templates/views/new.html.erb
308
315
  - lib/generators/mdwa/scaffold/templates/views/show.html.erb
309
- - lib/generators/mdwa/user/USAGE
310
- - lib/generators/mdwa/user/templates/controllers/ajax_controller.rb
311
- - lib/generators/mdwa/user/templates/controllers/controller.rb
312
- - lib/generators/mdwa/user/templates/migrate.rb
313
- - lib/generators/mdwa/user/templates/views/update.js.erb
316
+ - lib/generators/mdwa/user/templates/user.rb
314
317
  - lib/generators/mdwa/user/user_generator.rb
318
+ - lib/generators/mdwa/user_scaffold/USAGE
319
+ - lib/generators/mdwa/user_scaffold/templates/controllers/ajax_controller.rb
320
+ - lib/generators/mdwa/user_scaffold/templates/controllers/controller.rb
321
+ - lib/generators/mdwa/user_scaffold/templates/migrate.rb
322
+ - lib/generators/mdwa/user_scaffold/templates/views/update.js.erb
323
+ - lib/generators/mdwa/user_scaffold/user_scaffold_generator.rb
315
324
  - lib/mdd.rb
316
325
  - lib/mdwa.rb
317
326
  - lib/mdwa/.DS_Store
318
327
  - lib/mdwa/all.rb
319
328
  - lib/mdwa/dsl.rb
320
329
  - lib/mdwa/dsl/.DS_Store
330
+ - lib/mdwa/dsl/action.rb
321
331
  - lib/mdwa/dsl/entities.rb
322
332
  - lib/mdwa/dsl/entity.rb
333
+ - lib/mdwa/dsl/entity_actions.rb
323
334
  - lib/mdwa/dsl/entity_association.rb
324
335
  - lib/mdwa/dsl/entity_attribute.rb
325
- - lib/mdwa/dsl/generator.rb
336
+ - lib/mdwa/dsl/entity_specification.rb
337
+ - lib/mdwa/dsl/process.rb
338
+ - lib/mdwa/dsl/process_detail.rb
339
+ - lib/mdwa/dsl/process_detail_next_action.rb
340
+ - lib/mdwa/dsl/requirement.rb
341
+ - lib/mdwa/dsl/requirements.rb
342
+ - lib/mdwa/dsl/user.rb
343
+ - lib/mdwa/dsl/users.rb
344
+ - lib/mdwa/dsl/workflow.rb
326
345
  - lib/mdwa/generators.rb
327
346
  - lib/mdwa/generators/.DS_Store
328
347
  - lib/mdwa/generators/model.rb
@@ -334,9 +353,13 @@ files:
334
353
  - lib/mdwa/layout/helper.rb
335
354
  - lib/mdwa/version.rb
336
355
  - mdd.gemspec
356
+ - test/entity_actions_test.rb
357
+ - test/entity_specifications_test.rb
337
358
  - test/entity_test.rb
338
- - test/generators_test.rb
339
359
  - test/layout_test.rb
360
+ - test/process_test.rb
361
+ - test/requirements_test.rb
362
+ - test/users_test.rb
340
363
  homepage: https://github.com/marcelotheodoro/mdd
341
364
  licenses: []
342
365
  post_install_message:
@@ -362,6 +385,10 @@ signing_key:
362
385
  specification_version: 3
363
386
  summary: MDD-based code generation tools to avoid repetitive tasks in Rails dev.
364
387
  test_files:
388
+ - test/entity_actions_test.rb
389
+ - test/entity_specifications_test.rb
365
390
  - test/entity_test.rb
366
- - test/generators_test.rb
367
391
  - test/layout_test.rb
392
+ - test/process_test.rb
393
+ - test/requirements_test.rb
394
+ - test/users_test.rb
@@ -1,10 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- module MDWA
3
- module DSL
4
-
5
- module Generator
6
-
7
- end # generator
8
-
9
- end # DSL
10
- end # MDWA
File without changes