metasploit-model 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +3 -0
- data/.travis.yml +8 -8
- data/Gemfile +3 -0
- data/lib/metasploit/model/version.rb +10 -52
- data/metasploit-model.gemspec +2 -3
- data/spec/app/models/metasploit/model/association/reflection_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/association_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/base_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/date_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/group/base_spec.rb +2 -2
- data/spec/app/models/metasploit/model/search/operation/null_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/set_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operator/base_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operator/delegation_spec.rb +3 -3
- data/spec/app/models/metasploit/model/search/operator/group/base_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operator/null_spec.rb +1 -1
- data/spec/app/models/metasploit/model/search/operator/single_spec.rb +5 -5
- data/spec/app/models/metasploit/model/search/query_spec.rb +10 -10
- data/spec/app/validators/parameters_validator_spec.rb +1 -1
- data/spec/app/validators/password_is_strong_validator_spec.rb +1 -1
- data/spec/dummy/config/application.rb +4 -1
- data/spec/dummy/config/environments/development.rb +0 -3
- data/spec/dummy/config/environments/production.rb +0 -3
- data/spec/dummy/config/environments/test.rb +0 -3
- data/spec/lib/metasploit/model/association/error_spec.rb +2 -2
- data/spec/lib/metasploit/model/association_spec.rb +1 -1
- data/spec/lib/metasploit/model/base_spec.rb +1 -1
- data/spec/lib/metasploit/model/file_spec.rb +1 -1
- data/spec/lib/metasploit/model/nilify_blanks_spec.rb +2 -2
- data/spec/lib/metasploit/model/search/association_spec.rb +2 -2
- data/spec/lib/metasploit/model/search/operation_spec.rb +1 -1
- data/spec/lib/metasploit/model/search/operator/help_spec.rb +1 -1
- data/spec/lib/metasploit/model/search_spec.rb +4 -4
- data/spec/lib/metasploit/model/spec/pathname_collision_spec.rb +1 -1
- data/spec/lib/metasploit/model/spec_spec.rb +5 -5
- data/spec/lib/metasploit/model/visitation/visit_spec.rb +9 -9
- data/spec/lib/metasploit/model_spec.rb +11 -2
- data/spec/spec_helper.rb +23 -14
- data/spec/support/matchers/allow_attribute.rb +2 -2
- data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +2 -2
- data/spec/support/shared/examples/search_with.rb +1 -1
- metadata +82 -21
- metadata.gz.sig +1 -0
- data/spec/lib/metasploit/model/version_spec.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33abd16455058ed7a3e80b262aa179eb63f717e5
|
4
|
+
data.tar.gz: b06dd66e1b8fd11133e5c9807ce88a358a207ebc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d12399ecf2492ba0f99338a34cb736096f475b7bddd1624420af2063d94ed2af3c7459d86cc5587525fc93908dce056949306315bc5871849f3cf61b9e3cfa2b
|
7
|
+
data.tar.gz: d3b4b50fa2668bd2c9c943c3e4777497f9eb851e6739908b06a5ae7803635170806c918e21e5457cc0c5394e275334c387dc7e37b6162aab3e0c36c6da187578
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
t�1��!к�i��5 7_%�.N�HR`�_�ă�X1�i�Jl�7�{���@N����E+o3���F�����������1�ƕ���S�F7���B]D��nҝ�N�EJ��q@g_Q�O�}T���]l\|�0��9$�|�\�YJ:����@O��zH�Ge�y,NV�.xw�+��(�,�i��0&jB"ϵ�U��aGO�c/I�C��+��f�6IM��g��RV��v���~�ٗ�8U">���
|
data.tar.gz.sig
ADDED
data/.travis.yml
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
addons:
|
2
|
-
postgresql: '9.
|
2
|
+
postgresql: '9.5'
|
3
|
+
group: stable
|
4
|
+
sudo: false
|
3
5
|
cache: bundler
|
6
|
+
addons:
|
7
|
+
apt:
|
8
|
+
packages:
|
9
|
+
- graphviz
|
4
10
|
language: ruby
|
5
11
|
rvm:
|
6
|
-
-
|
7
|
-
# JRuby failing for redcarpet and shoulda-matchers gems
|
8
|
-
# < 1.7.14
|
9
|
-
#- 'jruby-1.7.13'
|
10
|
-
# >= 1.7.14
|
11
|
-
#- 'jruby-1.7.14'
|
12
|
+
- 2.2.4
|
12
13
|
script: bundle exec rake spec yard
|
13
|
-
sudo: false
|
data/Gemfile
CHANGED
@@ -3,6 +3,9 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in metasploit-model.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
# gem 'metasploit-yard', github: 'rapid7/metasploit-yard', branch: 'staging/rails-upgrade'
|
7
|
+
# gem 'metasploit-erd', github: 'rapid7/metasploit-erd', branch: 'staging/rails-upgrade'
|
8
|
+
|
6
9
|
# used by dummy application
|
7
10
|
group :development, :test do
|
8
11
|
# supplies factories for producing model instance for specs
|
@@ -1,57 +1,15 @@
|
|
1
1
|
module Metasploit
|
2
2
|
module Model
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
|
14
|
-
PATCH = 2
|
15
|
-
|
16
|
-
#
|
17
|
-
# Module Methods
|
18
|
-
#
|
19
|
-
|
20
|
-
# The full version string, including the {Metasploit::Model::Version::MAJOR},
|
21
|
-
# {Metasploit::Model::Version::MINOR}, {Metasploit::Model::Version::PATCH}, and optionally, the
|
22
|
-
# `Metasploit::Model::Version::PRERELEASE` in the
|
23
|
-
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
24
|
-
#
|
25
|
-
# @return [String] '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}'
|
26
|
-
# on master. '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}-PRERELEASE'
|
27
|
-
# on any branch other than master.
|
28
|
-
def self.full
|
29
|
-
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
30
|
-
|
31
|
-
if defined? PRERELEASE
|
32
|
-
version = "#{version}-#{PRERELEASE}"
|
33
|
-
end
|
34
|
-
|
35
|
-
version
|
36
|
-
end
|
37
|
-
|
38
|
-
# The full gem version string, including the {Metasploit::Model::Version::MAJOR},
|
39
|
-
# {Metasploit::Model::Version::MINOR}, {Metasploit::Model::Version::PATCH}, and optionally, the
|
40
|
-
# `Metasploit::Model::Version::PRERELEASE` in the
|
41
|
-
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
42
|
-
#
|
43
|
-
# @return [String] '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}'
|
44
|
-
# on master. '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}.PRERELEASE'
|
45
|
-
# on any branch other than master.
|
46
|
-
def self.gem
|
47
|
-
full.gsub('-', '.pre.')
|
48
|
-
end
|
3
|
+
# VERSION is managed by GemRelease
|
4
|
+
VERSION = '1.1.0'
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
#
|
8
|
+
# returns the VERSION
|
9
|
+
#
|
10
|
+
|
11
|
+
def self.version
|
12
|
+
VERSION
|
49
13
|
end
|
50
|
-
|
51
|
-
# (see Version.gem)
|
52
|
-
GEM_VERSION = Version.gem
|
53
|
-
|
54
|
-
# (see Version.full)
|
55
|
-
VERSION = Version.full
|
56
14
|
end
|
57
15
|
end
|
data/metasploit-model.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'metasploit/model/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'metasploit-model'
|
8
|
-
spec.version = Metasploit::Model::
|
8
|
+
spec.version = Metasploit::Model::VERSION
|
9
9
|
spec.authors = ['Luke Imhoff']
|
10
10
|
spec.email = ['luke_imhoff@rapid7.com']
|
11
11
|
spec.description = %q{Common code, such as validators and mixins, that are shared between ActiveModels in metasploit-framework and ActiveRecords in metasploit_data_models.}
|
@@ -19,8 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.required_ruby_version = '>= 2.1'
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
-
spec.add_development_dependency 'metasploit-
|
23
|
-
spec.add_development_dependency 'metasploit-yard', '~> 1.0'
|
22
|
+
spec.add_development_dependency 'metasploit-yard', '~> 1.1'
|
24
23
|
spec.add_development_dependency 'rake'
|
25
24
|
|
26
25
|
# documentation
|
@@ -44,7 +44,7 @@ RSpec.describe Metasploit::Model::Search::Operation::Group::Base, type: :model d
|
|
44
44
|
#
|
45
45
|
|
46
46
|
context 'with all valid' do
|
47
|
-
before(:
|
47
|
+
before(:example) do
|
48
48
|
children.each do |child|
|
49
49
|
allow(child).to receive(:valid?).and_return(true)
|
50
50
|
end
|
@@ -58,7 +58,7 @@ RSpec.describe Metasploit::Model::Search::Operation::Group::Base, type: :model d
|
|
58
58
|
end
|
59
59
|
|
60
60
|
context 'with later valid' do
|
61
|
-
before(:
|
61
|
+
before(:example) do
|
62
62
|
allow(children.first).to receive(:valid?).and_return(false)
|
63
63
|
allow(children.second).to receive(:valid?).and_return(true)
|
64
64
|
end
|
@@ -8,7 +8,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Base, type: :model do
|
|
8
8
|
described_class.new(klass: klass)
|
9
9
|
end
|
10
10
|
|
11
|
-
before(:
|
11
|
+
before(:example) do
|
12
12
|
# have to stub since it's not implemented on base
|
13
13
|
allow(operator).to receive(:name).and_return(name)
|
14
14
|
end
|
@@ -25,7 +25,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Delegation, type: :model do
|
|
25
25
|
'Demodulized'
|
26
26
|
end
|
27
27
|
|
28
|
-
before(:
|
28
|
+
before(:example) do
|
29
29
|
stub_const("Namespace::#{base_name}", subclass)
|
30
30
|
end
|
31
31
|
|
@@ -35,7 +35,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Delegation, type: :model do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
context 'with Camelized' do
|
38
|
-
before(:
|
38
|
+
before(:example) do
|
39
39
|
stub_const("CamelCase", subclass)
|
40
40
|
end
|
41
41
|
|
@@ -64,7 +64,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Delegation, type: :model do
|
|
64
64
|
}
|
65
65
|
end
|
66
66
|
|
67
|
-
before(:
|
67
|
+
before(:example) do
|
68
68
|
outer_search_operator_by_name = search_operator_by_name
|
69
69
|
|
70
70
|
klass.send(:define_singleton_method, :search_operator_by_name) do
|
@@ -11,7 +11,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Null, type: :model do
|
|
11
11
|
I18n.translate('metasploit.model.errors.models.metasploit/model/search/operator/null.attributes.name.unknown')
|
12
12
|
end
|
13
13
|
|
14
|
-
before(:
|
14
|
+
before(:example) do
|
15
15
|
operator.valid?
|
16
16
|
end
|
17
17
|
|
@@ -121,7 +121,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Single, type: :model do
|
|
121
121
|
double('Operation Class')
|
122
122
|
end
|
123
123
|
|
124
|
-
before(:
|
124
|
+
before(:example) do
|
125
125
|
allow(operator).to receive(:operation_class).and_return(operation_class)
|
126
126
|
end
|
127
127
|
|
@@ -144,7 +144,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Single, type: :model do
|
|
144
144
|
operator.send(:operation_class)
|
145
145
|
end
|
146
146
|
|
147
|
-
before(:
|
147
|
+
before(:example) do
|
148
148
|
allow(operator).to receive(:type).and_return(type)
|
149
149
|
end
|
150
150
|
|
@@ -210,7 +210,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Single, type: :model do
|
|
210
210
|
nil
|
211
211
|
end
|
212
212
|
|
213
|
-
before(:
|
213
|
+
before(:example) do
|
214
214
|
allow(operator).to receive(:name).and_return(name)
|
215
215
|
end
|
216
216
|
|
@@ -230,7 +230,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Single, type: :model do
|
|
230
230
|
operator.send(:operation_class_name)
|
231
231
|
end
|
232
232
|
|
233
|
-
before(:
|
233
|
+
before(:example) do
|
234
234
|
allow(operator).to receive(:type).and_return(type)
|
235
235
|
end
|
236
236
|
|
@@ -296,7 +296,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Single, type: :model do
|
|
296
296
|
nil
|
297
297
|
end
|
298
298
|
|
299
|
-
before(:
|
299
|
+
before(:example) do
|
300
300
|
allow(operator).to receive(:name).and_return(name)
|
301
301
|
end
|
302
302
|
|
@@ -18,7 +18,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
18
18
|
)
|
19
19
|
end
|
20
20
|
|
21
|
-
before(:
|
21
|
+
before(:example) do
|
22
22
|
stub_const('Queried', klass)
|
23
23
|
|
24
24
|
# include after stubbing constant so that Class#name can be used for search_i18n_scope
|
@@ -33,7 +33,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
33
33
|
)
|
34
34
|
end
|
35
35
|
|
36
|
-
before(:
|
36
|
+
before(:example) do
|
37
37
|
query.valid?
|
38
38
|
end
|
39
39
|
|
@@ -71,7 +71,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
71
71
|
described_class.new
|
72
72
|
end
|
73
73
|
|
74
|
-
before(:
|
74
|
+
before(:example) do
|
75
75
|
operation = double('Invalid Operation', :valid? => valid)
|
76
76
|
allow(query).to receive(:operations).and_return([operation])
|
77
77
|
end
|
@@ -198,7 +198,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
198
198
|
)
|
199
199
|
end
|
200
200
|
|
201
|
-
before(:
|
201
|
+
before(:example) do
|
202
202
|
stub_const('QueriedClass', klass)
|
203
203
|
|
204
204
|
# include after stubbing const so that search_i18n_scope can use Class#name
|
@@ -262,7 +262,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
262
262
|
)
|
263
263
|
end
|
264
264
|
|
265
|
-
before(:
|
265
|
+
before(:example) do
|
266
266
|
stub_const('QueriedClass', klass)
|
267
267
|
|
268
268
|
# include after stubbing const so that search_i18n_scope can use Class#name
|
@@ -288,7 +288,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
288
288
|
''
|
289
289
|
end
|
290
290
|
|
291
|
-
before(:
|
291
|
+
before(:example) do
|
292
292
|
@operator = klass.search_attribute attribute, :type => type
|
293
293
|
end
|
294
294
|
|
@@ -441,7 +441,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
441
441
|
)
|
442
442
|
end
|
443
443
|
|
444
|
-
before(:
|
444
|
+
before(:example) do
|
445
445
|
stub_const('Queried', klass)
|
446
446
|
|
447
447
|
klass.send(:include, Metasploit::Model::Search)
|
@@ -525,7 +525,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
525
525
|
)
|
526
526
|
end
|
527
527
|
|
528
|
-
before(:
|
528
|
+
before(:example) do
|
529
529
|
stub_const('QueriedClass', klass)
|
530
530
|
|
531
531
|
# include after stubbing const so that search_i18n_scope can use Class#name
|
@@ -584,7 +584,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
584
584
|
)
|
585
585
|
end
|
586
586
|
|
587
|
-
before(:
|
587
|
+
before(:example) do
|
588
588
|
stub_const('Queried', klass)
|
589
589
|
|
590
590
|
klass.send(:include, Metasploit::Model::Search)
|
@@ -685,7 +685,7 @@ RSpec.describe Metasploit::Model::Search::Query, type: :model do
|
|
685
685
|
# Callbacks
|
686
686
|
#
|
687
687
|
|
688
|
-
before(:
|
688
|
+
before(:example) do
|
689
689
|
stub_const('Queried', klass)
|
690
690
|
|
691
691
|
klass.send(:include, Metasploit::Model::Search)
|
@@ -33,7 +33,10 @@ module Dummy
|
|
33
33
|
|
34
34
|
# Configure sensitive parameters which will be filtered from the log file.
|
35
35
|
config.filter_parameters += [:password]
|
36
|
-
|
36
|
+
|
37
|
+
# Raise deprecations as errors
|
38
|
+
config.active_support.deprecation = :raise
|
39
|
+
|
37
40
|
# Enable escaping HTML in JSON.
|
38
41
|
config.active_support.escape_html_entities_in_json = true
|
39
42
|
|
@@ -13,9 +13,6 @@ Dummy::Application.configure do
|
|
13
13
|
config.consider_all_requests_local = true
|
14
14
|
config.action_controller.perform_caching = false
|
15
15
|
|
16
|
-
# Print deprecation notices to the Rails logger
|
17
|
-
config.active_support.deprecation = :log
|
18
|
-
|
19
16
|
# Do not compress assets
|
20
17
|
config.assets.compress = false
|
21
18
|
|
@@ -59,7 +59,4 @@ Dummy::Application.configure do
|
|
59
59
|
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
60
60
|
# the I18n.default_locale when a translation can not be found)
|
61
61
|
config.i18n.fallbacks = true
|
62
|
-
|
63
|
-
# Send deprecation notices to registered listeners
|
64
|
-
config.active_support.deprecation = :notify
|
65
62
|
end
|
@@ -12,7 +12,7 @@ RSpec.describe Metasploit::Model::Association::Error do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'without :model' do
|
15
|
-
before(:
|
15
|
+
before(:example) do
|
16
16
|
attributes.delete(:model)
|
17
17
|
end
|
18
18
|
|
@@ -24,7 +24,7 @@ RSpec.describe Metasploit::Model::Association::Error do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
context 'without :name' do
|
27
|
-
before(:
|
27
|
+
before(:example) do
|
28
28
|
attributes.delete(:name)
|
29
29
|
end
|
30
30
|
|
@@ -67,7 +67,7 @@ RSpec.describe Metasploit::Model::NilifyBlanks do
|
|
67
67
|
'value'
|
68
68
|
end
|
69
69
|
|
70
|
-
before(:
|
70
|
+
before(:example) do
|
71
71
|
base_class.class_eval do
|
72
72
|
#
|
73
73
|
# Attributes
|
@@ -130,7 +130,7 @@ RSpec.describe Metasploit::Model::NilifyBlanks do
|
|
130
130
|
double('Value')
|
131
131
|
end
|
132
132
|
|
133
|
-
before(:
|
133
|
+
before(:example) do
|
134
134
|
allow(value).to receive(:respond_to?).with(:blank?).and_return(false)
|
135
135
|
end
|
136
136
|
|
@@ -17,7 +17,7 @@ RSpec.describe Metasploit::Model::Search::Association do
|
|
17
17
|
}
|
18
18
|
|
19
19
|
context 'with previous call to search_association with same association' do
|
20
|
-
before(:
|
20
|
+
before(:example) do
|
21
21
|
base_class.search_association association
|
22
22
|
end
|
23
23
|
|
@@ -29,7 +29,7 @@ RSpec.describe Metasploit::Model::Search::Association do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
context 'with association tree rooted on association' do
|
32
|
-
before(:
|
32
|
+
before(:example) do
|
33
33
|
base_class.search_associations association => :child_association
|
34
34
|
end
|
35
35
|
|
@@ -45,7 +45,7 @@ RSpec.describe Metasploit::Model::Search::Operation do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
context "with at least one ':' in :formatted_operation" do
|
48
|
-
before(:
|
48
|
+
before(:example) do
|
49
49
|
allow(query).to receive(:parse_operator).with(formatted_operator).and_return(operator)
|
50
50
|
allow(operator).to receive(:operate_on).with(formatted_value).and_return(operation)
|
51
51
|
end
|
@@ -7,7 +7,7 @@ RSpec.describe Metasploit::Model::Search do
|
|
7
7
|
Class.new
|
8
8
|
end
|
9
9
|
|
10
|
-
before(:
|
10
|
+
before(:example) do
|
11
11
|
# class needs to be named or search_i18n_scope will error
|
12
12
|
stub_const('Searched', base_class)
|
13
13
|
|
@@ -28,7 +28,7 @@ RSpec.describe Metasploit::Model::Search do
|
|
28
28
|
:searched_attribute
|
29
29
|
end
|
30
30
|
|
31
|
-
before(:
|
31
|
+
before(:example) do
|
32
32
|
base_class.search_attribute attribute, :type => :string
|
33
33
|
end
|
34
34
|
|
@@ -66,7 +66,7 @@ RSpec.describe Metasploit::Model::Search do
|
|
66
66
|
'AssociatedThing'
|
67
67
|
end
|
68
68
|
|
69
|
-
before(:
|
69
|
+
before(:example) do
|
70
70
|
base_class.search_association association
|
71
71
|
base_class.send(:include, Metasploit::Model::Association)
|
72
72
|
|
@@ -143,7 +143,7 @@ RSpec.describe Metasploit::Model::Search do
|
|
143
143
|
double('Operator Class', :new => operator)
|
144
144
|
end
|
145
145
|
|
146
|
-
before(:
|
146
|
+
before(:example) do
|
147
147
|
base_class.search_with operator_class
|
148
148
|
end
|
149
149
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
RSpec.describe Metasploit::Model::Spec do
|
2
|
-
before(:
|
2
|
+
before(:example) do
|
3
3
|
@before_temporary_pathname = described_class.send(:remove_instance_variable, :@temporary_pathname)
|
4
4
|
end
|
5
5
|
|
6
|
-
after(:
|
6
|
+
after(:example) do
|
7
7
|
described_class.instance_variable_set(:@temporary_pathname, @before_temporary_pathname)
|
8
8
|
end
|
9
9
|
|
@@ -17,12 +17,12 @@ RSpec.describe Metasploit::Model::Spec do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
context 'with temporary_pathname set' do
|
20
|
-
before(:
|
20
|
+
before(:example) do
|
21
21
|
described_class.temporary_pathname = pathname
|
22
22
|
end
|
23
23
|
|
24
24
|
context 'that exists' do
|
25
|
-
before(:
|
25
|
+
before(:example) do
|
26
26
|
pathname.mkpath
|
27
27
|
|
28
28
|
child_pathname = pathname.join('child')
|
@@ -69,7 +69,7 @@ RSpec.describe Metasploit::Model::Spec do
|
|
69
69
|
Metasploit::Model::Engine.root.join('spec', 'pathname')
|
70
70
|
end
|
71
71
|
|
72
|
-
before(:
|
72
|
+
before(:example) do
|
73
73
|
described_class.temporary_pathname = pathname
|
74
74
|
end
|
75
75
|
|
@@ -46,7 +46,7 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
46
46
|
Module.new
|
47
47
|
end
|
48
48
|
|
49
|
-
before(:
|
49
|
+
before(:example) do
|
50
50
|
# give mod a Module#name for use in options
|
51
51
|
stub_const('Visited', mod)
|
52
52
|
end
|
@@ -80,7 +80,7 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
80
80
|
Module.new
|
81
81
|
end
|
82
82
|
|
83
|
-
before(:
|
83
|
+
before(:example) do
|
84
84
|
stub_const('Visited::First', first_module)
|
85
85
|
stub_const('Visited::Second', second_module)
|
86
86
|
end
|
@@ -150,12 +150,12 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
150
150
|
Class.new
|
151
151
|
end
|
152
152
|
|
153
|
-
before(:
|
153
|
+
before(:example) do
|
154
154
|
stub_const('Visited::Class', klass)
|
155
155
|
end
|
156
156
|
|
157
157
|
context 'with klass in visitor_by_module' do
|
158
|
-
before(:
|
158
|
+
before(:example) do
|
159
159
|
base_class.visitor_by_module[klass] = klass_visitor
|
160
160
|
end
|
161
161
|
|
@@ -177,14 +177,14 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
177
177
|
)
|
178
178
|
end
|
179
179
|
|
180
|
-
before(:
|
180
|
+
before(:example) do
|
181
181
|
stub_const('Visited::Ancestor', ancestor)
|
182
182
|
|
183
183
|
klass.send(:include, ancestor)
|
184
184
|
end
|
185
185
|
|
186
186
|
context 'with ancestor in visitor_by_module' do
|
187
|
-
before(:
|
187
|
+
before(:example) do
|
188
188
|
base_class.visitor_by_module[ancestor] = ancestor_visitor
|
189
189
|
end
|
190
190
|
|
@@ -200,7 +200,7 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
200
200
|
end
|
201
201
|
|
202
202
|
context "with ancestor Module#name in visitor_by_module_name" do
|
203
|
-
before(:
|
203
|
+
before(:example) do
|
204
204
|
base_class.visitor_by_module_name[ancestor.name] = ancestor_visitor
|
205
205
|
end
|
206
206
|
|
@@ -268,7 +268,7 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
268
268
|
Class.new
|
269
269
|
end
|
270
270
|
|
271
|
-
before(:
|
271
|
+
before(:example) do
|
272
272
|
stub_const('Visited::Class', node_class)
|
273
273
|
|
274
274
|
visitors = base_class.visit node.class.name, &block
|
@@ -302,7 +302,7 @@ RSpec.describe Metasploit::Model::Visitation::Visit do
|
|
302
302
|
node_class.new
|
303
303
|
end
|
304
304
|
|
305
|
-
before(:
|
305
|
+
before(:example) do
|
306
306
|
node_class.class_eval do
|
307
307
|
attr_accessor :child
|
308
308
|
end
|
@@ -1,4 +1,13 @@
|
|
1
1
|
RSpec.describe Metasploit::Model do
|
2
|
-
|
3
|
-
|
2
|
+
context 'CONSTANTS' do
|
3
|
+
context 'VERSION' do
|
4
|
+
subject(:version) {
|
5
|
+
described_class::VERSION
|
6
|
+
}
|
7
|
+
|
8
|
+
it 'is Metasploit::ERD::Version.full' do
|
9
|
+
expect(version).to eq(Metasploit::Model::VERSION)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
4
13
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -15,19 +15,8 @@ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
|
15
15
|
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
16
16
|
require 'rspec/rails'
|
17
17
|
|
18
|
-
#
|
19
|
-
|
20
|
-
|
21
|
-
roots = [
|
22
|
-
Metasploit::Model::Engine.root.to_path,
|
23
|
-
gem_specification.gem_dir
|
24
|
-
]
|
25
|
-
|
26
|
-
roots.each do |root|
|
27
|
-
Dir[File.join(root, 'spec', 'support', '**', '*.rb')].each do |f|
|
28
|
-
require f
|
29
|
-
end
|
30
|
-
end
|
18
|
+
# Requiring all support/**/*.rb files
|
19
|
+
Dir["./spec/support/**/*.rb"].sort.each { |f| require f}
|
31
20
|
|
32
21
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
33
22
|
RSpec.configure do |config|
|
@@ -110,9 +99,29 @@ RSpec.configure do |config|
|
|
110
99
|
I18n.exception_handler = Metasploit::Model::Spec::I18nExceptionHandler.new
|
111
100
|
end
|
112
101
|
|
113
|
-
config.after(:
|
102
|
+
config.after(:example) do
|
114
103
|
Metasploit::Model::Spec.remove_temporary_pathname
|
115
104
|
end
|
105
|
+
|
106
|
+
# rspec-rails 3 will no longer automatically infer an example group's spec type
|
107
|
+
# from the file location. You can explicitly opt-in to the feature using this
|
108
|
+
# config option.
|
109
|
+
# To explicitly tag specs without using automatic inference, set the `:type`
|
110
|
+
# metadata manually:
|
111
|
+
#
|
112
|
+
# describe ThingsController, :type => :controller do
|
113
|
+
# # Equivalent to being in spec/controllers
|
114
|
+
# end
|
115
|
+
config.infer_spec_type_from_file_location!
|
116
|
+
|
117
|
+
# Setting this config option `false` removes rspec-core's monkey patching of the
|
118
|
+
# top level methods like `describe`, `shared_examples_for` and `shared_context`
|
119
|
+
# on `main` and `Module`. The methods are always available through the `RSpec`
|
120
|
+
# module like `RSpec.describe` regardless of this setting.
|
121
|
+
# For backwards compatibility this defaults to `true`.
|
122
|
+
#
|
123
|
+
# https://relishapp.com/rspec/rspec-core/v/3-0/docs/configuration/global-namespace-dsl
|
124
|
+
config.expose_dsl_globally = false
|
116
125
|
end
|
117
126
|
|
118
127
|
Shoulda::Matchers.configure do |config|
|
@@ -3,11 +3,11 @@ RSpec::Matchers.define :allow_attribute do |attribute|
|
|
3
3
|
"allow zero or more items for #{attribute}"
|
4
4
|
end
|
5
5
|
|
6
|
-
|
6
|
+
failure_message do |module_instance|
|
7
7
|
"expected that #{module_instance} with #{module_instance.module_type} #module_type would allow #{attribute} zero or more items"
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
failure_message_when_negated do |module_instance|
|
11
11
|
"expected that #{module_instance} with #{module_instance.module_type} would not allow #{attribute} zero or more items"
|
12
12
|
end
|
13
13
|
|
@@ -20,7 +20,7 @@ RSpec.shared_examples_for 'Metasploit::Model::Search::Operator::Help' do
|
|
20
20
|
'operator_name'
|
21
21
|
end
|
22
22
|
|
23
|
-
before(:
|
23
|
+
before(:example) do
|
24
24
|
# klass needs to be named or model_name will fail.
|
25
25
|
stub_const('Klass', klass)
|
26
26
|
# since missing translations raise exceptions, and there is no translation for klass, have to stub out.
|
@@ -54,7 +54,7 @@ RSpec.shared_examples_for 'Metasploit::Model::Search::Operator::Help' do
|
|
54
54
|
}
|
55
55
|
end
|
56
56
|
|
57
|
-
after(:
|
57
|
+
after(:example) do
|
58
58
|
@metasploit_model_translations.delete(:ancestors)
|
59
59
|
end
|
60
60
|
|
metadata
CHANGED
@@ -1,14 +1,91 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Imhoff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
14
|
+
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
15
|
+
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
|
16
|
+
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
17
|
+
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
|
18
|
+
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
|
19
|
+
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
|
20
|
+
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
|
21
|
+
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
|
22
|
+
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
|
23
|
+
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
|
24
|
+
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
|
25
|
+
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
|
26
|
+
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
|
27
|
+
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
|
28
|
+
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
|
29
|
+
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
|
30
|
+
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
|
31
|
+
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
- |
|
34
|
+
-----BEGIN CERTIFICATE-----
|
35
|
+
MIIEKDCCAxCgAwIBAgILBAAAAAABL07hNVwwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
36
|
+
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
37
|
+
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xMTA0MTMxMDAw
|
38
|
+
MDBaFw0xOTA0MTMxMDAwMDBaMFExCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
39
|
+
YWxTaWduIG52LXNhMScwJQYDVQQDEx5HbG9iYWxTaWduIENvZGVTaWduaW5nIENB
|
40
|
+
IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyTxTnEL7XJnKr
|
41
|
+
NpfvU79ChF5Y0Yoo/ENGb34oRFALdV0A1zwKRJ4gaqT3RUo3YKNuPxL6bfq2RsNq
|
42
|
+
o7gMJygCVyjRUPdhOVW4w+ElhlI8vwUd17Oa+JokMUnVoqni05GrPjxz7/Yp8cg1
|
43
|
+
0DB7f06SpQaPh+LO9cFjZqwYaSrBXrta6G6V/zuAYp2Zx8cvZtX9YhqCVVrG+kB3
|
44
|
+
jskwPBvw8jW4bFmc/enWyrRAHvcEytFnqXTjpQhU2YM1O46MIwx1tt6GSp4aPgpQ
|
45
|
+
STic0qiQv5j6yIwrJxF+KvvO3qmuOJMi+qbs+1xhdsNE1swMfi9tBoCidEC7tx/0
|
46
|
+
O9dzVB/zAgMBAAGjgfowgfcwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
|
47
|
+
Af8CAQAwHQYDVR0OBBYEFAhu2Lacir/tPtfDdF3MgB+oL1B6MEcGA1UdIARAMD4w
|
48
|
+
PAYEVR0gADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNv
|
49
|
+
bS9yZXBvc2l0b3J5LzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmdsb2Jh
|
50
|
+
bHNpZ24ubmV0L3Jvb3QuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB8GA1UdIwQY
|
51
|
+
MBaAFGB7ZhpFDZfKiVAvfQTNNKj//P1LMA0GCSqGSIb3DQEBBQUAA4IBAQAiXMXd
|
52
|
+
PfQLcNjj9efFjgkBu7GWNlxaB63HqERJUSV6rg2kGTuSnM+5Qia7O2yX58fOEW1o
|
53
|
+
kdqNbfFTTVQ4jGHzyIJ2ab6BMgsxw2zJniAKWC/wSP5+SAeq10NYlHNUBDGpeA07
|
54
|
+
jLBwwT1+170vKsPi9Y8MkNxrpci+aF5dbfh40r5JlR4VeAiR+zTIvoStvODG3Rjb
|
55
|
+
88rwe8IUPBi4A7qVPiEeP2Bpen9qA56NSvnwKCwwhF7sJnJCsW3LZMMSjNaES2dB
|
56
|
+
fLEDF3gJ462otpYtpH6AA0+I98FrWkYVzSwZi9hwnOUtSYhgcqikGVJwQ17a1kYD
|
57
|
+
sGgOJO9K9gslJO8k
|
58
|
+
-----END CERTIFICATE-----
|
59
|
+
- |
|
60
|
+
-----BEGIN CERTIFICATE-----
|
61
|
+
MIIEyjCCA7KgAwIBAgISESEyE8rNriS4+1dc8jOHEUL8MA0GCSqGSIb3DQEBBQUA
|
62
|
+
MFExCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMScwJQYD
|
63
|
+
VQQDEx5HbG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gRzIwHhcNMTMxMDExMTUx
|
64
|
+
NTM4WhcNMTYxMDExMTUxNTM4WjBgMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFz
|
65
|
+
c2FjaHVzZXR0czEPMA0GA1UEBxMGQm9zdG9uMRMwEQYDVQQKEwpSYXBpZDcgTExD
|
66
|
+
MRMwEQYDVQQDEwpSYXBpZDcgTExDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
67
|
+
CgKCAQEAhD//7+739c69hssg0mD6CXgf2JkuWTcU81dgD7aKcoEPqU8e1FseBvDW
|
68
|
+
/Q5fNK2H2NgHV/Msn18zXuK0PkaJXqj/vDsuKB3Hq0BiR2AwyDdEw8K5MK5bgQc2
|
69
|
+
tmcVtEAejRoy1Uv5UyfaAYAxG6zsma3buV1fjnEAC3VouRg4+EX/f65H/a6srntK
|
70
|
+
5Etp3D71k2f0oUl8dOqOmSsRJQQ5zSs4ktDvpjAmsvzoA+1svceLYU95mvQsIw2T
|
71
|
+
edpmibGMwGw/HmgV+YWBgF5UGvax6zbC2i6DF2YHnDfkNb8/1MEIaxOTAbJTazTK
|
72
|
+
8laCQOyay6L1BNPQKjZBgOge8LZq1wIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQD
|
73
|
+
AgeAMEwGA1UdIARFMEMwQQYJKwYBBAGgMgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBz
|
74
|
+
Oi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAkGA1UdEwQCMAAwEwYD
|
75
|
+
VR0lBAwwCgYIKwYBBQUHAwMwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL2NybC5n
|
76
|
+
bG9iYWxzaWduLmNvbS9ncy9nc2NvZGVzaWduZzIuY3JsMIGGBggrBgEFBQcBAQR6
|
77
|
+
MHgwQAYIKwYBBQUHMAKGNGh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2Fj
|
78
|
+
ZXJ0L2dzY29kZXNpZ25nMi5jcnQwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwMi5n
|
79
|
+
bG9iYWxzaWduLmNvbS9nc2NvZGVzaWduZzIwHQYDVR0OBBYEFE536JwFx9SpaEi3
|
80
|
+
w8pcq2GRFA5BMB8GA1UdIwQYMBaAFAhu2Lacir/tPtfDdF3MgB+oL1B6MA0GCSqG
|
81
|
+
SIb3DQEBBQUAA4IBAQAGpGXHtFLjTTivV+xQPwtZhfPuJ7f+VGTMSAAYWmfzyHXM
|
82
|
+
YMFYUWJzSFcuVR2YfxtbS45P7U5Qopd7jBQ0Ygk5h2a+B5nE4+UlhHj665d0zpYM
|
83
|
+
1eWndMaO6WBOYnqtNyi8Dqqc1foKZDNHEDggYhGso7OIBunup+N4sPL9PwQ3eYe6
|
84
|
+
mUu8z0E4GXYViaMPOFkqaYnoYgf2L+7L5zKYT4h/NE/P7kj7EbduHgy/v/aAIrNl
|
85
|
+
2SpuQH+SWteq3NXkAmFEEqvLJQ4sbptZt8OP8ghL3pVAvZNFmww/YVszSkShSzcg
|
86
|
+
QdihYCSEL2drS2cFd50jBeq71sxUtxbv82DUa2b+
|
87
|
+
-----END CERTIFICATE-----
|
88
|
+
date: 2016-03-04 00:00:00.000000000 Z
|
12
89
|
dependencies:
|
13
90
|
- !ruby/object:Gem::Dependency
|
14
91
|
name: bundler
|
@@ -24,34 +101,20 @@ dependencies:
|
|
24
101
|
- - "~>"
|
25
102
|
- !ruby/object:Gem::Version
|
26
103
|
version: '1.3'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: metasploit-version
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.3
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1.3
|
41
104
|
- !ruby/object:Gem::Dependency
|
42
105
|
name: metasploit-yard
|
43
106
|
requirement: !ruby/object:Gem::Requirement
|
44
107
|
requirements:
|
45
108
|
- - "~>"
|
46
109
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
110
|
+
version: '1.1'
|
48
111
|
type: :development
|
49
112
|
prerelease: false
|
50
113
|
version_requirements: !ruby/object:Gem::Requirement
|
51
114
|
requirements:
|
52
115
|
- - "~>"
|
53
116
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
117
|
+
version: '1.1'
|
55
118
|
- !ruby/object:Gem::Dependency
|
56
119
|
name: rake
|
57
120
|
requirement: !ruby/object:Gem::Requirement
|
@@ -345,7 +408,6 @@ files:
|
|
345
408
|
- spec/lib/metasploit/model/spec/pathname_collision_spec.rb
|
346
409
|
- spec/lib/metasploit/model/spec_spec.rb
|
347
410
|
- spec/lib/metasploit/model/translation_spec.rb
|
348
|
-
- spec/lib/metasploit/model/version_spec.rb
|
349
411
|
- spec/lib/metasploit/model/visitation/visit_spec.rb
|
350
412
|
- spec/lib/metasploit/model_spec.rb
|
351
413
|
- spec/matchers/validate_nilness_of_spec.rb
|
@@ -477,7 +539,6 @@ test_files:
|
|
477
539
|
- spec/lib/metasploit/model/spec/pathname_collision_spec.rb
|
478
540
|
- spec/lib/metasploit/model/spec_spec.rb
|
479
541
|
- spec/lib/metasploit/model/translation_spec.rb
|
480
|
-
- spec/lib/metasploit/model/version_spec.rb
|
481
542
|
- spec/lib/metasploit/model/visitation/visit_spec.rb
|
482
543
|
- spec/lib/metasploit/model_spec.rb
|
483
544
|
- spec/matchers/validate_nilness_of_spec.rb
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
&ď���c�����Rx���W��@+O\Ğ����Ήn����+��|vH+��S�[H3��N�n��'��3��߅g��9�/�#l�����CG�ЃL�,i5���V���Js�#@Ӯ��s�&�b��+ǕE����.2�o�|�ƕ��[� B�#/<��O�e�:�oS�r�ܽ*��>���w$�~58T���3��z&o���}�K��K�g(7�$�L u.���t�B�����8Lk�oǪ�Iz0|����
|