metasploit_data_models 0.24.4 → 0.24.5

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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -3
  3. data/.travis.yml +3 -6
  4. data/CONTRIBUTING.md +52 -10
  5. data/Gemfile +8 -1
  6. data/Rakefile +0 -23
  7. data/app/models/mdm/api_key.rb +1 -41
  8. data/app/models/mdm/client.rb +1 -41
  9. data/app/models/mdm/cred.rb +19 -107
  10. data/app/models/mdm/event.rb +1 -48
  11. data/app/models/mdm/exploit_attempt.rb +16 -65
  12. data/app/models/mdm/exploited_host.rb +1 -28
  13. data/app/models/mdm/host_detail.rb +1 -45
  14. data/app/models/mdm/host_tag.rb +8 -6
  15. data/app/models/mdm/listener.rb +1 -53
  16. data/app/models/mdm/macro.rb +0 -42
  17. data/app/models/mdm/mod_ref.rb +0 -21
  18. data/app/models/mdm/module/action.rb +0 -15
  19. data/app/models/mdm/module/arch.rb +0 -10
  20. data/app/models/mdm/module/author.rb +0 -16
  21. data/app/models/mdm/module/mixin.rb +0 -13
  22. data/app/models/mdm/module/platform.rb +0 -11
  23. data/app/models/mdm/module/target.rb +0 -18
  24. data/app/models/mdm/nexpose_console.rb +4 -82
  25. data/app/models/mdm/profile.rb +0 -36
  26. data/app/models/mdm/route.rb +5 -17
  27. data/app/models/mdm/session_event.rb +1 -33
  28. data/app/models/mdm/tag.rb +10 -49
  29. data/app/models/mdm/task.rb +45 -94
  30. data/app/models/mdm/task_cred.rb +0 -29
  31. data/app/models/mdm/task_host.rb +0 -25
  32. data/app/models/mdm/task_service.rb +0 -25
  33. data/app/models/mdm/task_session.rb +0 -25
  34. data/app/models/mdm/user.rb +6 -188
  35. data/app/models/mdm/vuln_attempt.rb +12 -37
  36. data/app/models/mdm/vuln_detail.rb +5 -139
  37. data/app/models/mdm/vuln_ref.rb +1 -4
  38. data/app/models/mdm/web_form.rb +1 -35
  39. data/app/models/mdm/web_page.rb +1 -70
  40. data/app/models/mdm/web_site.rb +1 -51
  41. data/app/models/mdm/wmap_request.rb +0 -85
  42. data/app/models/mdm/wmap_target.rb +0 -40
  43. data/app/models/mdm/workspace.rb +14 -152
  44. data/app/models/metasploit_data_models/automatic_exploitation.rb +16 -0
  45. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +24 -19
  46. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +5 -33
  47. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +4 -22
  48. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +3 -13
  49. data/app/models/metasploit_data_models/ip_address/v4/segmented.rb +1 -1
  50. data/app/models/metasploit_data_models/module_run.rb +1 -1
  51. data/app/models/metasploit_data_models/search/visitor/where.rb +1 -1
  52. data/app/validators/ip_format_validator.rb +0 -4
  53. data/app/validators/parameters_validator.rb +0 -12
  54. data/app/validators/password_is_strong_validator.rb +1 -10
  55. data/lib/mdm/host/operating_system_normalization.rb +10 -7
  56. data/lib/metasploit_data_models.rb +0 -4
  57. data/lib/metasploit_data_models/engine.rb +0 -2
  58. data/lib/metasploit_data_models/serialized_prefs.rb +0 -6
  59. data/lib/metasploit_data_models/version.rb +10 -24
  60. data/lib/tasks/yard.rake +33 -0
  61. data/metasploit_data_models.gemspec +2 -9
  62. data/spec/app/models/mdm/api_key_spec.rb +3 -1
  63. data/spec/app/models/mdm/client_spec.rb +11 -9
  64. data/spec/app/models/mdm/cred_spec.rb +54 -42
  65. data/spec/app/models/mdm/event_spec.rb +23 -21
  66. data/spec/app/models/mdm/exploit_attempt_spec.rb +21 -19
  67. data/spec/app/models/mdm/exploited_host_spec.rb +13 -11
  68. data/spec/app/models/mdm/host_detail_spec.rb +17 -15
  69. data/spec/app/models/mdm/host_spec.rb +260 -261
  70. data/spec/app/models/mdm/host_tag_spec.rb +8 -6
  71. data/spec/app/models/mdm/listener_spec.rb +32 -30
  72. data/spec/app/models/mdm/loot_spec.rb +23 -21
  73. data/spec/app/models/mdm/macro_spec.rb +3 -1
  74. data/spec/app/models/mdm/mod_ref_spec.rb +3 -1
  75. data/spec/app/models/mdm/module/action_spec.rb +12 -10
  76. data/spec/app/models/mdm/module/arch_spec.rb +12 -10
  77. data/spec/app/models/mdm/module/author_spec.rb +17 -22
  78. data/spec/app/models/mdm/module/detail_spec.rb +75 -184
  79. data/spec/app/models/mdm/module/mixin_spec.rb +12 -10
  80. data/spec/app/models/mdm/module/platform_spec.rb +12 -10
  81. data/spec/app/models/mdm/module/ref_spec.rb +12 -10
  82. data/spec/app/models/mdm/module/target_spec.rb +15 -13
  83. data/spec/app/models/mdm/nexpose_console_spec.rb +37 -35
  84. data/spec/app/models/mdm/note_spec.rb +25 -23
  85. data/spec/app/models/mdm/profile_spec.rb +3 -1
  86. data/spec/app/models/mdm/ref_spec.rb +12 -10
  87. data/spec/app/models/mdm/route_spec.rb +8 -6
  88. data/spec/app/models/mdm/service_spec.rb +40 -38
  89. data/spec/app/models/mdm/session_event_spec.rb +12 -10
  90. data/spec/app/models/mdm/session_spec.rb +15 -13
  91. data/spec/app/models/mdm/tag_spec.rb +29 -29
  92. data/spec/app/models/mdm/task_cred_spec.rb +11 -9
  93. data/spec/app/models/mdm/task_host_spec.rb +11 -9
  94. data/spec/app/models/mdm/task_service_spec.rb +11 -9
  95. data/spec/app/models/mdm/task_session_spec.rb +9 -7
  96. data/spec/app/models/mdm/task_spec.rb +29 -27
  97. data/spec/app/models/mdm/user_spec.rb +19 -17
  98. data/spec/app/models/mdm/vuln_attempt_spec.rb +16 -14
  99. data/spec/app/models/mdm/vuln_detail_spec.rb +28 -26
  100. data/spec/app/models/mdm/vuln_ref_spec.rb +10 -8
  101. data/spec/app/models/mdm/vuln_spec.rb +26 -24
  102. data/spec/app/models/mdm/web_form_spec.rb +13 -11
  103. data/spec/app/models/mdm/web_page_spec.rb +21 -19
  104. data/spec/app/models/mdm/web_site_spec.rb +23 -21
  105. data/spec/app/models/mdm/web_vuln_spec.rb +65 -63
  106. data/spec/app/models/mdm/wmap_request_spec.rb +3 -1
  107. data/spec/app/models/mdm/wmap_target_spec.rb +3 -1
  108. data/spec/app/models/mdm/workspace_spec.rb +100 -97
  109. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +5 -3
  110. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +15 -13
  111. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +3 -1
  112. data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +3 -1
  113. data/spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb +12 -10
  114. data/spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb +6 -4
  115. data/spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb +23 -21
  116. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb +11 -9
  117. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb +23 -21
  118. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb +6 -4
  119. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb +15 -22
  120. data/spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb +6 -4
  121. data/spec/app/models/metasploit_data_models/module_run_spec.rb +3 -1
  122. data/spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb +20 -18
  123. data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +8 -6
  124. data/spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb +10 -8
  125. data/spec/app/models/metasploit_data_models/search/operation/range_spec.rb +10 -8
  126. data/spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb +4 -2
  127. data/spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb +10 -8
  128. data/spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb +8 -6
  129. data/spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb +11 -9
  130. data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +7 -5
  131. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +19 -17
  132. data/spec/app/models/metasploit_data_models/search/visitor/method_spec.rb +7 -5
  133. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +23 -61
  134. data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +10 -8
  135. data/spec/app/validators/parameters_validator_spec.rb +29 -29
  136. data/spec/app/validators/password_is_strong_validator_spec.rb +46 -54
  137. data/spec/dummy/db/structure.sql +3403 -0
  138. data/spec/factories/mdm/module/details.rb +1 -1
  139. data/spec/lib/base64_serializer_spec.rb +19 -19
  140. data/spec/lib/metasploit_data_models/ip_address/cidr_spec.rb +12 -18
  141. data/spec/lib/metasploit_data_models/ip_address/range_spec.rb +6 -4
  142. data/spec/lib/metasploit_data_models/match/child_spec.rb +4 -2
  143. data/spec/lib/metasploit_data_models/match/parent_spec.rb +6 -4
  144. data/spec/lib/metasploit_data_models/version_spec.rb +141 -3
  145. data/spec/spec_helper.rb +12 -86
  146. data/spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb +2 -2
  147. data/spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb +4 -4
  148. data/spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb +2 -2
  149. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb +5 -5
  150. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb +5 -5
  151. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb +3 -3
  152. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb +6 -7
  153. metadata +9 -67
  154. data/CHANGELOG.md +0 -6
  155. data/RELEASING.md +0 -88
  156. data/UPGRADING.md +0 -1
  157. data/lib/metasploit_data_models/automatic_exploitation.rb +0 -25
  158. data/spec/lib/metasploit_data_models_spec.rb +0 -4
data/spec/spec_helper.rb CHANGED
@@ -22,6 +22,7 @@ end
22
22
 
23
23
  require File.expand_path('../dummy/config/environment.rb', __FILE__)
24
24
  require 'rspec/rails'
25
+ require 'rspec/autorun'
25
26
 
26
27
  # full backtrace in logs so its easier to trace errors
27
28
  Rails.backtrace_cleaner.remove_silencers!
@@ -29,102 +30,27 @@ Rails.backtrace_cleaner.remove_silencers!
29
30
  # Requires supporting ruby files with custom matchers and macros, etc,
30
31
  # in spec/support/ and its subdirectories.
31
32
 
32
- # Use find_all_by_name instead of find_by_name as find_all_by_name will return pre-release versions
33
- gem_specification = Gem::Specification.find_all_by_name('metasploit-version').first
34
-
35
- Dir[File.join(gem_specification.gem_dir, 'spec', 'support', '**', '*.rb')].each do |f|
36
- require f
37
- end
38
-
39
- roots = [
40
- gem_specification.gem_dir,
41
- Metasploit::Concern::Engine.root,
42
- Metasploit::Model::Engine.root,
43
- MetasploitDataModels::Engine.root
33
+ engines = [
34
+ Metasploit::Concern::Engine,
35
+ Metasploit::Model::Engine,
36
+ MetasploitDataModels::Engine
44
37
  ]
45
38
 
46
- roots.each do |root|
47
- support_glob = File.join(root, 'spec', 'support', '**', '*.rb')
39
+ engines.each do |engine|
40
+ support_glob = engine.root.join('spec', 'support', '**', '*.rb')
48
41
 
49
42
  Dir.glob(support_glob) do |path|
50
43
  require path
51
44
  end
52
45
  end
53
46
 
54
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
55
47
  RSpec.configure do |config|
56
- # rspec-expectations config goes here. You can use an alternate
57
- # assertion/expectation library such as wrong or the stdlib/minitest
58
- # assertions if you prefer.
59
- config.expect_with :rspec do |expectations|
60
- # This option will default to `true` in RSpec 4. It makes the `description`
61
- # and `failure_message` of custom matchers include text for helper methods
62
- # defined using `chain`, e.g.:
63
- # be_bigger_than(2).and_smaller_than(4).description
64
- # # => "be bigger than 2 and smaller than 4"
65
- # ...rather than:
66
- # # => "be bigger than 2"
67
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
68
- end
69
-
70
- # rspec-mocks config goes here. You can use an alternate test double
71
- # library (such as bogus or mocha) by changing the `mock_with` option here.
72
- config.mock_with :rspec do |mocks|
73
- # Prevents you from mocking or stubbing a method that does not exist on
74
- # a real object. This is generally recommended, and will default to
75
- # `true` in RSpec 4.
76
- mocks.verify_partial_doubles = true
77
- end
78
-
79
- # These two settings work together to allow you to limit a spec run
80
- # to individual examples or groups you care about by tagging them with
81
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
82
- # get run.
83
- config.filter_run :focus
84
- config.run_all_when_everything_filtered = true
85
-
86
- # Limits the available syntax to the non-monkey patched syntax that is
87
- # recommended. For more details, see:
88
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
89
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
90
- # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
91
- config.disable_monkey_patching!
92
-
93
- # This setting enables warnings. It's recommended, but in some cases may
94
- # be too noisy due to issues in dependencies.
95
- config.warnings = true
96
-
97
- # Many RSpec users commonly either run the entire suite or an individual
98
- # file, and it's useful to allow more verbose output when running an
99
- # individual spec file.
100
- if config.files_to_run.one?
101
- # Use the documentation formatter for detailed output,
102
- # unless a formatter has already been configured
103
- # (e.g. via a command-line flag).
104
- config.default_formatter = 'doc'
105
- end
106
-
107
- # Print the 10 slowest examples and example groups at the
108
- # end of the spec run, to help surface which specs are running
109
- # particularly slow.
110
- config.profile_examples = 10
111
-
112
- # Run specs in random order to surface order dependencies. If you find an
113
- # order dependency and want to debug it, you can fix the order by providing
114
- # the seed, which is printed after each run.
115
- # --seed 1234
116
- config.order = :random
117
-
118
- # Seed global randomization in this process using the `--seed` CLI option.
119
- # Setting this allows you to use `--seed` to deterministically reproduce
120
- # test failures related to randomization by passing the same `--seed` value
121
- # as the one that triggered the failure.
122
- Kernel.srand config.seed
123
-
124
- config.use_transactional_fixtures = true
125
-
126
48
  config.before(:each) do
127
49
  # Rex is only available when testing with metasploit-framework or pro, so stub out the methods that require it
128
- allow_any_instance_of(Mdm::Workspace).to receive(:valid_ip_or_range?).and_return(true)
50
+ Mdm::Workspace.any_instance.stub(:valid_ip_or_range? => true)
129
51
  end
52
+
53
+ config.mock_with :rspec
54
+ config.use_transactional_fixtures = true
55
+ config.order = :random
130
56
  end
@@ -6,7 +6,7 @@ shared_examples_for 'Mdm::Module::Detail does not support stance with mtype' do
6
6
  end
7
7
 
8
8
  it 'should return false for supports_stance?' do
9
- expect(detail.supports_stance?).to eq(false)
9
+ detail.supports_stance?.should be_false
10
10
  end
11
11
 
12
12
  context 'with nil stance' do
@@ -14,7 +14,7 @@ shared_examples_for 'Mdm::Module::Detail does not support stance with mtype' do
14
14
  nil
15
15
  end
16
16
 
17
- it { is_expected.to be_valid }
17
+ it { should be_valid }
18
18
  end
19
19
  end
20
20
  end
@@ -6,7 +6,7 @@ shared_examples_for 'Mdm::Module::Detail supports stance with mtype' do |mtype|
6
6
  end
7
7
 
8
8
  it 'should return true for supports_stance?' do
9
- expect(detail.supports_stance?).to eq(true)
9
+ detail.supports_stance?.should be_true
10
10
  end
11
11
 
12
12
  context 'with nil stance' do
@@ -14,7 +14,7 @@ shared_examples_for 'Mdm::Module::Detail supports stance with mtype' do |mtype|
14
14
  nil
15
15
  end
16
16
 
17
- it { is_expected.to be_invalid }
17
+ it { should be_invalid }
18
18
  end
19
19
 
20
20
  context "with 'aggresive' stance" do
@@ -22,7 +22,7 @@ shared_examples_for 'Mdm::Module::Detail supports stance with mtype' do |mtype|
22
22
  'aggressive'
23
23
  end
24
24
 
25
- it { is_expected.to be_valid }
25
+ it { should be_valid }
26
26
  end
27
27
 
28
28
  context "with 'passive' stance" do
@@ -30,7 +30,7 @@ shared_examples_for 'Mdm::Module::Detail supports stance with mtype' do |mtype|
30
30
  'passive'
31
31
  end
32
32
 
33
- it { is_expected.to be_valid }
33
+ it { should be_valid }
34
34
  end
35
35
  end
36
36
  end
@@ -11,7 +11,7 @@ shared_examples_for 'MetasploitDataModels::Search::Operation::IPAddress::*.match
11
11
 
12
12
  shared_examples_for 'match' do |boolean|
13
13
  if boolean
14
- it { is_expected.to be_a described_class }
14
+ it { should be_a described_class }
15
15
 
16
16
  it 'does not set #operator' do
17
17
  expect(match.operator).to be_nil
@@ -21,7 +21,7 @@ shared_examples_for 'MetasploitDataModels::Search::Operation::IPAddress::*.match
21
21
  expect(match.value).not_to be_nil
22
22
  end
23
23
  else
24
- it { is_expected.to be_nil }
24
+ it { should be_nil }
25
25
  end
26
26
  end
27
27
 
@@ -13,10 +13,10 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Includes#visit with
13
13
 
14
14
  it 'should visit each child' do
15
15
  # needed for call to visit subject
16
- expect(visitor).to receive(:visit).with(node).and_call_original
16
+ visitor.should_receive(:visit).with(node).and_call_original
17
17
 
18
18
  children.each do |child|
19
- expect(visitor).to receive(:visit).with(child).and_return([])
19
+ visitor.should_receive(:visit).with(child).and_return([])
20
20
  end
21
21
 
22
22
  visit
@@ -25,14 +25,14 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Includes#visit with
25
25
  it 'should return Array of all child visits' do
26
26
  child_visits = []
27
27
 
28
- expect(visitor).to receive(:visit).with(node).and_call_original
28
+ visitor.should_receive(:visit).with(node).and_call_original
29
29
 
30
30
  children.each_with_index do |child, i|
31
31
  child_visit = ["Visited Child #{i}"]
32
- allow(visitor).to receive(:visit).with(child).and_return(child_visit)
32
+ visitor.stub(:visit).with(child).and_return(child_visit)
33
33
  child_visits.concat(child_visit)
34
34
  end
35
35
 
36
- expect(visit).to eq(child_visits)
36
+ visit.should == child_visits
37
37
  end
38
38
  end
@@ -10,17 +10,17 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Includes#visit with
10
10
  end
11
11
 
12
12
  it 'should visit operator' do
13
- expect(visitor).to receive(:visit).with(node).and_call_original
14
- expect(visitor).to receive(:visit).with(operator).and_return([])
13
+ visitor.should_receive(:visit).with(node).and_call_original
14
+ visitor.should_receive(:visit).with(operator).and_return([])
15
15
 
16
16
  visit
17
17
  end
18
18
 
19
19
  it 'should return operator visit' do
20
20
  operator_visit = ["Visited Operator"]
21
- expect(visitor).to receive(:visit).with(node).and_call_original
22
- allow(visitor).to receive(:visit).with(operator).and_return(operator_visit)
21
+ visitor.should_receive(:visit).with(node).and_call_original
22
+ visitor.stub(:visit).with(operator).and_return(operator_visit)
23
23
 
24
- expect(visit).to eq(operator_visit)
24
+ visit.should == operator_visit
25
25
  end
26
26
  end
@@ -18,16 +18,16 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Where#visit with equ
18
18
  end
19
19
 
20
20
  it 'should visit operation.operator with attribute_visitor' do
21
- expect(visitor.attribute_visitor).to receive(:visit).with(operator).and_call_original
21
+ visitor.attribute_visitor.should_receive(:visit).with(operator).and_call_original
22
22
 
23
23
  visit
24
24
  end
25
25
 
26
26
  it 'should call eq on Arel::Attributes::Attribute from attribute_visitor' do
27
27
  attribute = double('Visited Operator')
28
- allow(visitor.attribute_visitor).to receive(:visit).with(operator).and_return(attribute)
28
+ visitor.attribute_visitor.stub(:visit).with(operator).and_return(attribute)
29
29
 
30
- expect(attribute).to receive(:eq).with(value)
30
+ attribute.should_receive(:eq).with(value)
31
31
 
32
32
  visit
33
33
  end
@@ -16,22 +16,22 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Where#visit with Met
16
16
  end
17
17
 
18
18
  it 'should visit each child' do
19
- expect(visitor).to receive(:visit).with(node).and_call_original
19
+ visitor.should_receive(:visit).with(node).and_call_original
20
20
 
21
21
  children.each do |child|
22
- expect(visitor).to receive(:visit).with(child).and_return(Arel::Nodes::Equality.new(1, 1))
22
+ visitor.should_receive(:visit).with(child).and_return(Arel::Nodes::Equality.new(1, 1))
23
23
  end
24
24
 
25
25
  visit
26
26
  end
27
27
 
28
28
  it "should combine children AREL with #{arel_class}" do
29
- allow(visitor).to receive(:visit).with(node).and_call_original
29
+ visitor.stub(:visit).with(node).and_call_original
30
30
  child_visits = []
31
31
 
32
32
  children.each_with_index do |child, i|
33
33
  child_visit = Arel::Nodes::Equality.new(i, i)
34
- allow(visitor).to receive(:visit).with(child).and_return(child_visit)
34
+ visitor.stub(:visit).with(child).and_return(child_visit)
35
35
  child_visits << child_visit
36
36
  end
37
37
 
@@ -43,9 +43,8 @@ shared_examples_for 'MetasploitDataModels::Search::Visitor::Where#visit with Met
43
43
  arel_pair = root
44
44
  end
45
45
 
46
- expect(arel_pair).to be_a arel_class
46
+ arel_pair.should be_a arel_class
47
47
 
48
- expect(arel_pair.left).to eq(child_visits[0])
49
- expect(arel_pair.right).to eq(child_visits[1])
48
+ expect([arel_pair.left, arel_pair.right]).to match_array(child_visits)
50
49
  end
51
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit_data_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.4
4
+ version: 0.24.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Huckins
@@ -13,62 +13,6 @@ bindir: bin
13
13
  cert_chain: []
14
14
  date: 2015-05-29 00:00:00.000000000 Z
15
15
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: metasploit-version
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - "~>"
21
- - !ruby/object:Gem::Version
22
- version: 0.1.3
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 0.1.3
30
- - !ruby/object:Gem::Dependency
31
- name: metasploit-yard
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - "~>"
35
- - !ruby/object:Gem::Version
36
- version: '1.0'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: '1.0'
44
- - !ruby/object:Gem::Dependency
45
- name: yard-activerecord
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: 0.0.14
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: 0.0.14
58
- - !ruby/object:Gem::Dependency
59
- name: yard-metasploit-erd
60
- requirement: !ruby/object:Gem::Requirement
61
- requirements:
62
- - - "~>"
63
- - !ruby/object:Gem::Version
64
- version: 0.1.0
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: 0.1.0
72
16
  - !ruby/object:Gem::Dependency
73
17
  name: rake
74
18
  requirement: !ruby/object:Gem::Requirement
@@ -165,28 +109,28 @@ dependencies:
165
109
  requirements:
166
110
  - - '='
167
111
  - !ruby/object:Gem::Version
168
- version: 0.5.0
112
+ version: 0.4.0
169
113
  type: :runtime
170
114
  prerelease: false
171
115
  version_requirements: !ruby/object:Gem::Requirement
172
116
  requirements:
173
117
  - - '='
174
118
  - !ruby/object:Gem::Version
175
- version: 0.5.0
119
+ version: 0.4.0
176
120
  - !ruby/object:Gem::Dependency
177
121
  name: metasploit-model
178
122
  requirement: !ruby/object:Gem::Requirement
179
123
  requirements:
180
124
  - - "~>"
181
125
  - !ruby/object:Gem::Version
182
- version: 0.30.0
126
+ version: 0.29.0
183
127
  type: :runtime
184
128
  prerelease: false
185
129
  version_requirements: !ruby/object:Gem::Requirement
186
130
  requirements:
187
131
  - - "~>"
188
132
  - !ruby/object:Gem::Version
189
- version: 0.30.0
133
+ version: 0.29.0
190
134
  - !ruby/object:Gem::Dependency
191
135
  name: railties
192
136
  requirement: !ruby/object:Gem::Requirement
@@ -261,14 +205,11 @@ files:
261
205
  - ".simplecov"
262
206
  - ".travis.yml"
263
207
  - ".yardopts"
264
- - CHANGELOG.md
265
208
  - CONTRIBUTING.md
266
209
  - Gemfile
267
210
  - LICENSE
268
211
  - README.md
269
- - RELEASING.md
270
212
  - Rakefile
271
- - UPGRADING.md
272
213
  - app/models/mdm/api_key.rb
273
214
  - app/models/mdm/client.rb
274
215
  - app/models/mdm/cred.rb
@@ -316,6 +257,7 @@ files:
316
257
  - app/models/mdm/wmap_request.rb
317
258
  - app/models/mdm/wmap_target.rb
318
259
  - app/models/mdm/workspace.rb
260
+ - app/models/metasploit_data_models/automatic_exploitation.rb
319
261
  - app/models/metasploit_data_models/automatic_exploitation/match.rb
320
262
  - app/models/metasploit_data_models/automatic_exploitation/match_result.rb
321
263
  - app/models/metasploit_data_models/automatic_exploitation/match_set.rb
@@ -476,7 +418,6 @@ files:
476
418
  - lib/mdm/host/operating_system_normalization.rb
477
419
  - lib/mdm/module.rb
478
420
  - lib/metasploit_data_models.rb
479
- - lib/metasploit_data_models/automatic_exploitation.rb
480
421
  - lib/metasploit_data_models/base64_serializer.rb
481
422
  - lib/metasploit_data_models/change_required_columns_to_null_false.rb
482
423
  - lib/metasploit_data_models/engine.rb
@@ -497,6 +438,7 @@ files:
497
438
  - lib/metasploit_data_models/search/visitor.rb
498
439
  - lib/metasploit_data_models/serialized_prefs.rb
499
440
  - lib/metasploit_data_models/version.rb
441
+ - lib/tasks/yard.rake
500
442
  - metasploit_data_models.gemspec
501
443
  - script/rails
502
444
  - spec/app/models/mdm/api_key_spec.rb
@@ -599,6 +541,7 @@ files:
599
541
  - spec/dummy/config/initializers/session_store.rb
600
542
  - spec/dummy/config/initializers/wrap_parameters.rb
601
543
  - spec/dummy/config/routes.rb
544
+ - spec/dummy/db/structure.sql
602
545
  - spec/dummy/lib/assets/.gitkeep
603
546
  - spec/dummy/log/.gitkeep
604
547
  - spec/dummy/public/404.html
@@ -664,7 +607,6 @@ files:
664
607
  - spec/lib/metasploit_data_models/match/child_spec.rb
665
608
  - spec/lib/metasploit_data_models/match/parent_spec.rb
666
609
  - spec/lib/metasploit_data_models/version_spec.rb
667
- - spec/lib/metasploit_data_models_spec.rb
668
610
  - spec/spec_helper.rb
669
611
  - spec/support/matchers/match_regex_exactly.rb
670
612
  - spec/support/shared/contexts/rex/text.rb
@@ -804,6 +746,7 @@ test_files:
804
746
  - spec/dummy/config/initializers/session_store.rb
805
747
  - spec/dummy/config/initializers/wrap_parameters.rb
806
748
  - spec/dummy/config/routes.rb
749
+ - spec/dummy/db/structure.sql
807
750
  - spec/dummy/lib/assets/.gitkeep
808
751
  - spec/dummy/log/.gitkeep
809
752
  - spec/dummy/public/404.html
@@ -869,7 +812,6 @@ test_files:
869
812
  - spec/lib/metasploit_data_models/match/child_spec.rb
870
813
  - spec/lib/metasploit_data_models/match/parent_spec.rb
871
814
  - spec/lib/metasploit_data_models/version_spec.rb
872
- - spec/lib/metasploit_data_models_spec.rb
873
815
  - spec/spec_helper.rb
874
816
  - spec/support/matchers/match_regex_exactly.rb
875
817
  - spec/support/shared/contexts/rex/text.rb