metasploit_data_models 0.7.0-java → 0.11.2-java

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 (70) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +1 -0
  3. data/app/models/mdm/host.rb +352 -26
  4. data/app/models/mdm/loot.rb +72 -7
  5. data/app/models/mdm/{module_action.rb → module/action.rb} +3 -3
  6. data/app/models/mdm/{module_arch.rb → module/arch.rb} +3 -3
  7. data/app/models/mdm/{module_author.rb → module/author.rb} +3 -3
  8. data/app/models/mdm/module/detail.rb +280 -0
  9. data/app/models/mdm/{module_mixin.rb → module/mixin.rb} +3 -3
  10. data/app/models/mdm/{module_platform.rb → module/platform.rb} +3 -3
  11. data/app/models/mdm/module/ref.rb +48 -0
  12. data/app/models/mdm/{module_target.rb → module/target.rb} +3 -3
  13. data/app/models/mdm/note.rb +61 -6
  14. data/app/models/mdm/ref.rb +39 -1
  15. data/app/models/mdm/service.rb +85 -7
  16. data/app/models/mdm/session.rb +100 -6
  17. data/app/models/mdm/vuln.rb +104 -24
  18. data/db/migrate/20130228214900_change_required_columns_to_null_false_in_web_vulns.rb +1 -17
  19. data/db/migrate/20130412154159_change_foreign_key_in_module_actions.rb +25 -0
  20. data/db/migrate/20130412171844_change_foreign_key_in_module_archs.rb +25 -0
  21. data/db/migrate/20130412173121_change_foreign_key_in_module_authors.rb +25 -0
  22. data/db/migrate/20130412173640_change_foreign_key_in_module_mixins.rb +25 -0
  23. data/db/migrate/20130412174254_change_foreign_key_in_module_platforms.rb +25 -0
  24. data/db/migrate/20130412174719_change_foreign_key_in_module_refs.rb +25 -0
  25. data/db/migrate/20130412175040_change_foreign_key_in_module_targets.rb +25 -0
  26. data/db/migrate/20130430151353_change_required_columns_to_null_false_in_hosts.rb +11 -0
  27. data/db/migrate/20130430162145_enforce_address_uniqueness_in_workspace_in_hosts.rb +23 -0
  28. data/lib/mdm/module.rb +4 -0
  29. data/lib/metasploit_data_models.rb +1 -0
  30. data/lib/metasploit_data_models/change_required_columns_to_null_false.rb +23 -0
  31. data/lib/metasploit_data_models/version.rb +1 -1
  32. data/spec/app/models/mdm/host_spec.rb +411 -0
  33. data/spec/app/models/mdm/host_tag_spec.rb +13 -0
  34. data/spec/app/models/mdm/{module_action_spec.rb → module/action_spec.rb} +6 -6
  35. data/spec/app/models/mdm/{module_arch_spec.rb → module/arch_spec.rb} +6 -6
  36. data/spec/app/models/mdm/{module_author_spec.rb → module/author_spec.rb} +6 -6
  37. data/spec/app/models/mdm/{module_detail_spec.rb → module/detail_spec.rb} +101 -11
  38. data/spec/app/models/mdm/{module_mixin_spec.rb → module/mixin_spec.rb} +6 -6
  39. data/spec/app/models/mdm/{module_platform_spec.rb → module/platform_spec.rb} +6 -6
  40. data/spec/app/models/mdm/module/ref_spec.rb +62 -0
  41. data/spec/app/models/mdm/{module_target_spec.rb → module/target_spec.rb} +6 -6
  42. data/spec/app/models/mdm/ref_spec.rb +62 -0
  43. data/spec/app/models/mdm/tag_spec.rb +13 -0
  44. data/spec/app/models/mdm/vuln_ref_spec.rb +13 -0
  45. data/spec/app/models/mdm/vuln_spec.rb +231 -0
  46. data/spec/dummy/db/schema.rb +20 -20
  47. data/spec/factories/mdm/host_tags.rb +9 -0
  48. data/spec/factories/mdm/hosts.rb +65 -0
  49. data/spec/factories/mdm/module/actions.rb +14 -0
  50. data/spec/factories/mdm/module/archs.rb +14 -0
  51. data/spec/factories/mdm/{module_authors.rb → module/authors.rb} +4 -4
  52. data/spec/factories/mdm/module/details.rb +66 -0
  53. data/spec/factories/mdm/module/mixins.rb +14 -0
  54. data/spec/factories/mdm/module/platforms.rb +14 -0
  55. data/spec/factories/mdm/module/refs.rb +14 -0
  56. data/spec/factories/mdm/{module_targets.rb → module/targets.rb} +3 -3
  57. data/spec/factories/mdm/refs.rb +9 -0
  58. data/spec/factories/mdm/tags.rb +14 -0
  59. data/spec/factories/mdm/vuln_refs.rb +4 -0
  60. data/spec/factories/mdm/vulns.rb +20 -0
  61. metadata +75 -42
  62. data/app/models/mdm/module_detail.rb +0 -59
  63. data/app/models/mdm/module_ref.rb +0 -24
  64. data/spec/app/models/mdm/module_ref_spec.rb +0 -38
  65. data/spec/factories/mdm/module_actions.rb +0 -14
  66. data/spec/factories/mdm/module_archs.rb +0 -14
  67. data/spec/factories/mdm/module_details.rb +0 -9
  68. data/spec/factories/mdm/module_mixins.rb +0 -14
  69. data/spec/factories/mdm/module_platforms.rb +0 -14
  70. data/spec/factories/mdm/module_refs.rb +0 -14
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_action, :class => Mdm::Module::Action do
3
+ name { generate :mdm_module_action_name }
4
+
5
+ #
6
+ # Associations
7
+ #
8
+ association :detail, :factory => :mdm_module_detail
9
+ end
10
+
11
+ sequence :mdm_module_action_name do |n|
12
+ "Mdm::Module::Action#name #{n}"
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_arch, :class => Mdm::Module::Arch do
3
+ name { generate :mdm_module_arch_name }
4
+
5
+ #
6
+ # Associations
7
+ #
8
+ association :detail, :factory => :mdm_module_detail
9
+ end
10
+
11
+ sequence :mdm_module_arch_name do |n|
12
+ "Mdm::Module::Arch#name #{n}"
13
+ end
14
+ end
@@ -1,11 +1,11 @@
1
1
  FactoryGirl.define do
2
- factory :mdm_module_author, :class => Mdm::ModuleAuthor do
2
+ factory :mdm_module_author, :class => Mdm::Module::Author do
3
3
  name { generate :mdm_module_author_name }
4
4
 
5
5
  #
6
6
  # Associations
7
7
  #
8
- association :module_detail, :factory => :mdm_module_detail
8
+ association :detail, :factory => :mdm_module_detail
9
9
 
10
10
  factory :full_mdm_module_author do
11
11
  email { generate :mdm_module_author_name }
@@ -13,10 +13,10 @@ FactoryGirl.define do
13
13
  end
14
14
 
15
15
  sequence :mdm_module_author_name do |n|
16
- "Mdm::ModuleAuthor#name #{n}"
16
+ "Mdm::Module::Author#name #{n}"
17
17
  end
18
18
 
19
19
  sequence :mdm_module_author_email do |n|
20
- "Mdm::ModuleAuthor#email #{n}"
20
+ "Mdm::Module::Author#email #{n}"
21
21
  end
22
22
  end
@@ -0,0 +1,66 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_detail, :class => Mdm::Module::Detail do
3
+ ignore do
4
+ root {
5
+ MetasploitDataModels.root
6
+ }
7
+ modules_pathname { root.join('modules') }
8
+ end
9
+
10
+ description { generate :mdm_module_detail_description }
11
+ disclosure_date { generate :mdm_module_detail_disclosure_date }
12
+ license { generate :mdm_module_detail_license }
13
+ mtime { generate :mdm_module_detail_mtime }
14
+ mtype { generate :mdm_module_detail_mtype }
15
+ privileged { generate :mdm_module_detail_privileged }
16
+ name { generate :mdm_module_detail_name }
17
+ rank { generate :mdm_module_detail_rank }
18
+ refname { generate :mdm_module_detail_refname }
19
+ fullname { "#{mtype}/#{refname}" }
20
+ stance { generate :mdm_module_detail_stance }
21
+
22
+ file {
23
+ type_directory = Mdm::Module::Detail::DIRECTORY_BY_TYPE[mtype]
24
+
25
+ modules_pathname.join(
26
+ type_directory,
27
+ "#{refname}.rb"
28
+ ).to_path
29
+ }
30
+ end
31
+
32
+ sequence :mdm_module_detail_disclosure_date do |n|
33
+ # @todo https://www.pivotaltracker.com/story/show/48450593
34
+ Date.today - n
35
+ end
36
+
37
+ sequence :mdm_module_detail_description do |n|
38
+ "Module Description #{n}"
39
+ end
40
+
41
+ sequence :mdm_module_detail_license do |n|
42
+ "Module License v#{n}"
43
+ end
44
+
45
+ sequence :mdm_module_detail_privileged, Mdm::Module::Detail::PRIVILEGES.cycle
46
+
47
+ sequence :mdm_module_detail_mtime do |n|
48
+ Time.now.utc - n.seconds
49
+ end
50
+
51
+ ordered_types = Mdm::Module::Detail::DIRECTORY_BY_TYPE.keys.sort
52
+ sequence :mdm_module_detail_mtype, ordered_types.cycle
53
+
54
+ sequence :mdm_module_detail_name do |n|
55
+ "Module Name #{n}"
56
+ end
57
+
58
+ ordered_ranks = Mdm::Module::Detail::RANK_BY_NAME.values.sort
59
+ sequence :mdm_module_detail_rank, ordered_ranks.cycle
60
+
61
+ sequence :mdm_module_detail_refname do |n|
62
+ "module/ref/name#{n}"
63
+ end
64
+
65
+ sequence :mdm_module_detail_stance, Mdm::Module::Detail::STANCES.cycle
66
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_mixin, :class => Mdm::Module::Mixin do
3
+ name { generate :mdm_module_mixin_name }
4
+
5
+ #
6
+ # Associations
7
+ #
8
+ association :detail, :factory => :mdm_module_detail
9
+ end
10
+
11
+ sequence :mdm_module_mixin_name do |n|
12
+ "Mdm::Module::Mixin#name #{n}"
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_platform, :class => Mdm::Module::Platform do
3
+ name { generate :mdm_module_platform_name }
4
+
5
+ #
6
+ # Associations
7
+ #
8
+ association :detail, :factory => :mdm_module_detail
9
+ end
10
+
11
+ sequence :mdm_module_platform_name do |n|
12
+ "Mdm::Module::Platform#name #{n}"
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_module_ref, :class => Mdm::Module::Ref do
3
+ name { generate :mdm_module_ref_name }
4
+
5
+ #
6
+ # Associations
7
+ #
8
+ association :detail, :factory => :mdm_module_detail
9
+ end
10
+
11
+ sequence :mdm_module_ref_name do |n|
12
+ "Mdm::Module::Ref#name #{n}"
13
+ end
14
+ end
@@ -1,12 +1,12 @@
1
1
  FactoryGirl.define do
2
- factory :mdm_module_target, :class => Mdm::ModuleTarget do
2
+ factory :mdm_module_target, :class => Mdm::Module::Target do
3
3
  index { generate :mdm_module_target_index }
4
4
  name { generate :mdm_module_target_name }
5
5
 
6
6
  #
7
7
  # Associations
8
8
  #
9
- association :module_detail, :factory => :mdm_module_detail
9
+ association :detail, :factory => :mdm_module_detail
10
10
  end
11
11
 
12
12
  sequence :mdm_module_target_index do |n|
@@ -14,6 +14,6 @@ FactoryGirl.define do
14
14
  end
15
15
 
16
16
  sequence :mdm_module_target_name do |n|
17
- "Mdm::ModuleTarget#name #{n}"
17
+ "Mdm::Module::Target#name #{n}"
18
18
  end
19
19
  end
@@ -0,0 +1,9 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_ref, :class => Mdm::Ref do
3
+ name { generate :mdm_ref_name }
4
+ end
5
+
6
+ sequence :mdm_ref_name do |n|
7
+ "Mdm::Ref#name #{n}"
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_tag, :class => Mdm::Tag do
3
+ desc { generate :mdm_tag_desc }
4
+ name { generate :mdm_tag_name }
5
+ end
6
+
7
+ sequence :mdm_tag_desc do |n|
8
+ "Mdm::Tag#description #{n}"
9
+ end
10
+
11
+ sequence :mdm_tag_name do |n|
12
+ "mdm_tag_name#{n}"
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_vuln_ref, :class => Mdm::VulnRef do
3
+ end
4
+ end
@@ -0,0 +1,20 @@
1
+ FactoryGirl.define do
2
+ factory :mdm_vuln, :class => Mdm::Vuln do
3
+ name { generate :mdm_vuln_name }
4
+
5
+ trait :host do
6
+ association :host, :factory => :mdm_host
7
+ end
8
+
9
+ trait :service do
10
+ association :service, :factory => :mdm_service
11
+ end
12
+
13
+ factory :mdm_host_vuln, :traits => [:host]
14
+ factory :mdm_service_vuln, :traits => [:service]
15
+ end
16
+
17
+ sequence :mdm_vuln_name do |n|
18
+ "Mdm::Vuln#name #{n}"
19
+ end
20
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: metasploit_data_models
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.0
5
+ version: 0.11.2
6
6
  platform: java
7
7
  authors:
8
8
  - Samuel Huckins
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-05-06 00:00:00.000000000 Z
14
+ date: 2013-05-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -188,14 +188,14 @@ files:
188
188
  - app/models/mdm/loot.rb
189
189
  - app/models/mdm/macro.rb
190
190
  - app/models/mdm/mod_ref.rb
191
- - app/models/mdm/module_action.rb
192
- - app/models/mdm/module_arch.rb
193
- - app/models/mdm/module_author.rb
194
- - app/models/mdm/module_detail.rb
195
- - app/models/mdm/module_mixin.rb
196
- - app/models/mdm/module_platform.rb
197
- - app/models/mdm/module_ref.rb
198
- - app/models/mdm/module_target.rb
191
+ - app/models/mdm/module/action.rb
192
+ - app/models/mdm/module/arch.rb
193
+ - app/models/mdm/module/author.rb
194
+ - app/models/mdm/module/detail.rb
195
+ - app/models/mdm/module/mixin.rb
196
+ - app/models/mdm/module/platform.rb
197
+ - app/models/mdm/module/ref.rb
198
+ - app/models/mdm/module/target.rb
199
199
  - app/models/mdm/nexpose_console.rb
200
200
  - app/models/mdm/note.rb
201
201
  - app/models/mdm/profile.rb
@@ -307,11 +307,22 @@ files:
307
307
  - db/migrate/20120625000008_add_fail_message.rb
308
308
  - db/migrate/20120718202805_add_owner_and_payload_to_web_vulns.rb
309
309
  - db/migrate/20130228214900_change_required_columns_to_null_false_in_web_vulns.rb
310
+ - db/migrate/20130412154159_change_foreign_key_in_module_actions.rb
311
+ - db/migrate/20130412171844_change_foreign_key_in_module_archs.rb
312
+ - db/migrate/20130412173121_change_foreign_key_in_module_authors.rb
313
+ - db/migrate/20130412173640_change_foreign_key_in_module_mixins.rb
314
+ - db/migrate/20130412174254_change_foreign_key_in_module_platforms.rb
315
+ - db/migrate/20130412174719_change_foreign_key_in_module_refs.rb
316
+ - db/migrate/20130412175040_change_foreign_key_in_module_targets.rb
310
317
  - db/migrate/20130423211152_add_creds_counter_cache.rb
318
+ - db/migrate/20130430151353_change_required_columns_to_null_false_in_hosts.rb
319
+ - db/migrate/20130430162145_enforce_address_uniqueness_in_workspace_in_hosts.rb
311
320
  - lib/mdm.rb
312
321
  - lib/mdm/host/operating_system_normalization.rb
322
+ - lib/mdm/module.rb
313
323
  - lib/metasploit_data_models.rb
314
324
  - lib/metasploit_data_models/base64_serializer.rb
325
+ - lib/metasploit_data_models/change_required_columns_to_null_false.rb
315
326
  - lib/metasploit_data_models/engine.rb
316
327
  - lib/metasploit_data_models/serialized_prefs.rb
317
328
  - lib/metasploit_data_models/validators/ip_format_validator.rb
@@ -320,14 +331,20 @@ files:
320
331
  - lib/tasks/yard.rake
321
332
  - metasploit_data_models.gemspec
322
333
  - script/rails
323
- - spec/app/models/mdm/module_action_spec.rb
324
- - spec/app/models/mdm/module_arch_spec.rb
325
- - spec/app/models/mdm/module_author_spec.rb
326
- - spec/app/models/mdm/module_detail_spec.rb
327
- - spec/app/models/mdm/module_mixin_spec.rb
328
- - spec/app/models/mdm/module_platform_spec.rb
329
- - spec/app/models/mdm/module_ref_spec.rb
330
- - spec/app/models/mdm/module_target_spec.rb
334
+ - spec/app/models/mdm/host_spec.rb
335
+ - spec/app/models/mdm/host_tag_spec.rb
336
+ - spec/app/models/mdm/module/action_spec.rb
337
+ - spec/app/models/mdm/module/arch_spec.rb
338
+ - spec/app/models/mdm/module/author_spec.rb
339
+ - spec/app/models/mdm/module/detail_spec.rb
340
+ - spec/app/models/mdm/module/mixin_spec.rb
341
+ - spec/app/models/mdm/module/platform_spec.rb
342
+ - spec/app/models/mdm/module/ref_spec.rb
343
+ - spec/app/models/mdm/module/target_spec.rb
344
+ - spec/app/models/mdm/ref_spec.rb
345
+ - spec/app/models/mdm/tag_spec.rb
346
+ - spec/app/models/mdm/vuln_ref_spec.rb
347
+ - spec/app/models/mdm/vuln_spec.rb
331
348
  - spec/app/models/mdm/web_vuln_spec.rb
332
349
  - spec/dummy/Rakefile
333
350
  - spec/dummy/app/assets/javascripts/application.js
@@ -362,17 +379,22 @@ files:
362
379
  - spec/dummy/public/favicon.ico
363
380
  - spec/dummy/script/rails
364
381
  - spec/factories/mdm/addresses.rb
382
+ - spec/factories/mdm/host_tags.rb
365
383
  - spec/factories/mdm/hosts.rb
366
- - spec/factories/mdm/module_actions.rb
367
- - spec/factories/mdm/module_archs.rb
368
- - spec/factories/mdm/module_authors.rb
369
- - spec/factories/mdm/module_details.rb
370
- - spec/factories/mdm/module_mixins.rb
371
- - spec/factories/mdm/module_platforms.rb
372
- - spec/factories/mdm/module_refs.rb
373
- - spec/factories/mdm/module_targets.rb
384
+ - spec/factories/mdm/module/actions.rb
385
+ - spec/factories/mdm/module/archs.rb
386
+ - spec/factories/mdm/module/authors.rb
387
+ - spec/factories/mdm/module/details.rb
388
+ - spec/factories/mdm/module/mixins.rb
389
+ - spec/factories/mdm/module/platforms.rb
390
+ - spec/factories/mdm/module/refs.rb
391
+ - spec/factories/mdm/module/targets.rb
392
+ - spec/factories/mdm/refs.rb
374
393
  - spec/factories/mdm/services.rb
394
+ - spec/factories/mdm/tags.rb
375
395
  - spec/factories/mdm/users.rb
396
+ - spec/factories/mdm/vuln_refs.rb
397
+ - spec/factories/mdm/vulns.rb
376
398
  - spec/factories/mdm/web_sites.rb
377
399
  - spec/factories/mdm/web_vulns.rb
378
400
  - spec/factories/mdm/workspaces.rb
@@ -411,14 +433,20 @@ signing_key:
411
433
  specification_version: 3
412
434
  summary: Database code for MSF and Metasploit Pro
413
435
  test_files:
414
- - spec/app/models/mdm/module_action_spec.rb
415
- - spec/app/models/mdm/module_arch_spec.rb
416
- - spec/app/models/mdm/module_author_spec.rb
417
- - spec/app/models/mdm/module_detail_spec.rb
418
- - spec/app/models/mdm/module_mixin_spec.rb
419
- - spec/app/models/mdm/module_platform_spec.rb
420
- - spec/app/models/mdm/module_ref_spec.rb
421
- - spec/app/models/mdm/module_target_spec.rb
436
+ - spec/app/models/mdm/host_spec.rb
437
+ - spec/app/models/mdm/host_tag_spec.rb
438
+ - spec/app/models/mdm/module/action_spec.rb
439
+ - spec/app/models/mdm/module/arch_spec.rb
440
+ - spec/app/models/mdm/module/author_spec.rb
441
+ - spec/app/models/mdm/module/detail_spec.rb
442
+ - spec/app/models/mdm/module/mixin_spec.rb
443
+ - spec/app/models/mdm/module/platform_spec.rb
444
+ - spec/app/models/mdm/module/ref_spec.rb
445
+ - spec/app/models/mdm/module/target_spec.rb
446
+ - spec/app/models/mdm/ref_spec.rb
447
+ - spec/app/models/mdm/tag_spec.rb
448
+ - spec/app/models/mdm/vuln_ref_spec.rb
449
+ - spec/app/models/mdm/vuln_spec.rb
422
450
  - spec/app/models/mdm/web_vuln_spec.rb
423
451
  - spec/dummy/Rakefile
424
452
  - spec/dummy/app/assets/javascripts/application.js
@@ -453,17 +481,22 @@ test_files:
453
481
  - spec/dummy/public/favicon.ico
454
482
  - spec/dummy/script/rails
455
483
  - spec/factories/mdm/addresses.rb
484
+ - spec/factories/mdm/host_tags.rb
456
485
  - spec/factories/mdm/hosts.rb
457
- - spec/factories/mdm/module_actions.rb
458
- - spec/factories/mdm/module_archs.rb
459
- - spec/factories/mdm/module_authors.rb
460
- - spec/factories/mdm/module_details.rb
461
- - spec/factories/mdm/module_mixins.rb
462
- - spec/factories/mdm/module_platforms.rb
463
- - spec/factories/mdm/module_refs.rb
464
- - spec/factories/mdm/module_targets.rb
486
+ - spec/factories/mdm/module/actions.rb
487
+ - spec/factories/mdm/module/archs.rb
488
+ - spec/factories/mdm/module/authors.rb
489
+ - spec/factories/mdm/module/details.rb
490
+ - spec/factories/mdm/module/mixins.rb
491
+ - spec/factories/mdm/module/platforms.rb
492
+ - spec/factories/mdm/module/refs.rb
493
+ - spec/factories/mdm/module/targets.rb
494
+ - spec/factories/mdm/refs.rb
465
495
  - spec/factories/mdm/services.rb
496
+ - spec/factories/mdm/tags.rb
466
497
  - spec/factories/mdm/users.rb
498
+ - spec/factories/mdm/vuln_refs.rb
499
+ - spec/factories/mdm/vulns.rb
467
500
  - spec/factories/mdm/web_sites.rb
468
501
  - spec/factories/mdm/web_vulns.rb
469
502
  - spec/factories/mdm/workspaces.rb
@@ -1,59 +0,0 @@
1
- class Mdm::ModuleDetail < ActiveRecord::Base
2
- self.table_name = 'module_details'
3
-
4
- #
5
- # Associations
6
- #
7
-
8
- has_many :actions, :class_name => 'Mdm::ModuleAction', :dependent => :destroy, :source => :module_action
9
- has_many :archs, :class_name => 'Mdm::ModuleArch', :dependent => :destroy, :source => :module_arch
10
- has_many :authors, :class_name => 'Mdm::ModuleAuthor', :dependent => :destroy, :source => :module_author
11
- has_many :mixins, :class_name => 'Mdm::ModuleMixin', :dependent => :destroy, :source => :module_mixin
12
- has_many :platforms, :class_name => 'Mdm::ModulePlatform', :dependent => :destroy, :source => :module_platform
13
- has_many :refs, :class_name => 'Mdm::ModuleRef', :dependent => :destroy, :source => :module_ref
14
- has_many :targets, :class_name => 'Mdm::ModuleTarget', :dependent => :destroy, :source => :module_target
15
-
16
- #
17
- # Validations
18
- #
19
-
20
- validates :refname, :presence => true
21
-
22
- validates_associated :actions
23
- validates_associated :archs
24
- validates_associated :authors
25
- validates_associated :mixins
26
- validates_associated :platforms
27
- validates_associated :refs
28
- validates_associated :targets
29
-
30
- def add_action(name)
31
- self.actions.build(:name => name).save
32
- end
33
-
34
- def add_arch(name)
35
- self.archs.build(:name => name).save
36
- end
37
-
38
- def add_author(name, email=nil)
39
- self.authors.build(:name => name, :email => email).save
40
- end
41
-
42
- def add_mixin(name)
43
- self.mixins.build(:name => name).save
44
- end
45
-
46
- def add_platform(name)
47
- self.platforms.build(:name => name).save
48
- end
49
-
50
- def add_ref(name)
51
- self.refs.build(:name => name).save
52
- end
53
-
54
- def add_target(index, name)
55
- self.targets.build(:index => index, :name => name).save
56
- end
57
-
58
- ActiveSupport.run_load_hooks(:mdm_module_detail, self)
59
- end