metasploit-version 0.1.2-java → 0.1.3-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.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/.travis.yml +10 -3
- data/CHANGELOG.md +6 -0
- data/CONTRIBUTING.md +10 -44
- data/Gemfile +12 -8
- data/RELEASING.md +86 -0
- data/Rakefile +5 -4
- data/UPGRADING.md +1 -0
- data/app/templates/.rspec.tt +2 -0
- data/app/templates/CHANGELOG.md.tt +18 -0
- data/app/templates/CONTRIBUTING.md.tt +122 -0
- data/app/templates/RELEASING.md.tt +99 -0
- data/app/templates/Rakefile.tt +7 -0
- data/app/templates/UPGRADING.md.tt +1 -0
- data/app/templates/lib/versioned/version.rb.tt +64 -0
- data/app/templates/spec/lib/versioned/version_spec.rb.tt +3 -0
- data/app/templates/spec/lib/versioned_spec.rb.tt +4 -0
- data/app/templates/spec/spec_helper.rb.tt +76 -0
- data/bin/metasploit-version +12 -0
- data/config/cucumber.yml +3 -0
- data/features/metasploit-version/install/add_development_dependency.feature +68 -0
- data/features/metasploit-version/install/bundle_install.feature +24 -0
- data/features/metasploit-version/install/changelog.feature +29 -0
- data/features/metasploit-version/install/conflict.feature +45 -0
- data/features/metasploit-version/install/contributing.feature +139 -0
- data/features/metasploit-version/install/namespace_spec/gem_version_constant.feature +154 -0
- data/features/metasploit-version/install/namespace_spec/namespace.feature +33 -0
- data/features/metasploit-version/install/namespace_spec/version_constant.feature +179 -0
- data/features/metasploit-version/install/rake_spec.feature +27 -0
- data/features/metasploit-version/install/releasing/ruby_versions.feature +50 -0
- data/features/metasploit-version/install/releasing/versioning.feature +138 -0
- data/features/metasploit-version/install/steps/gemspec_steps.rb +19 -0
- data/features/metasploit-version/install/upgrading.feature +19 -0
- data/features/metasploit-version/install/version.feature +11 -0
- data/features/metasploit-version/install/version/namespace.feature +157 -0
- data/features/metasploit-version/install/version/prerelease.feature +154 -0
- data/features/metasploit-version/install/version_spec/namespace.feature +32 -0
- data/features/metasploit-version/install/version_spec/testing/branch_from_master.feature +40 -0
- data/features/metasploit-version/install/version_spec/testing/branching_from_branch.feature +161 -0
- data/features/metasploit-version/install/version_spec/testing/merge_branch_to_master.feature +97 -0
- data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/environment_variable_steps.rb +1 -1
- data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/git_steps.rb +11 -3
- data/features/support/env.rb +15 -11
- data/lib/metasploit/version.rb +1 -0
- data/lib/metasploit/version/cli.rb +321 -0
- data/lib/metasploit/version/version.rb +2 -2
- data/metasploit-version.gemspec +2 -2
- data/spec/lib/metasploit/version/branch_spec.rb +1 -3
- data/spec/lib/metasploit/version/cli_spec.rb +514 -0
- data/spec/lib/metasploit/version/version_spec.rb +2 -4
- data/spec/lib/metasploit/version_spec.rb +2 -4
- data/spec/spec_helper.rb +63 -1
- data/spec/support/shared/examples/metasploit/version/version_module.rb +3 -1
- metadata +81 -7
@@ -0,0 +1,154 @@
|
|
1
|
+
Feature: metasploit-version install's <namespace>_spec.rb uses 'Metasploit::Version GEM_VERSION constant' shared example
|
2
|
+
|
3
|
+
The <namespace>_spec.rb will check that GEM_VERSION is defined correctly using the
|
4
|
+
'Metasploit::Version GEM_VERSION constant' shared example.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I successfully run `bundle gem namespace_spec`
|
8
|
+
And I cd to "namespace_spec"
|
9
|
+
And my git identity is configured
|
10
|
+
And I successfully run `git commit --message "bundle gem namespace_spec"`
|
11
|
+
And I unset the environment variable "TRAVIS_BRANCH"
|
12
|
+
And I set the environment variables to:
|
13
|
+
| variable | value |
|
14
|
+
| TRAVIS_PULL_REQUEST | false |
|
15
|
+
And I successfully run `metasploit-version install --force --no-bundle-install`
|
16
|
+
And I successfully run `git add *`
|
17
|
+
And I successfully run `git commit --all --message "metasploit-version install"`
|
18
|
+
And I successfully run `git checkout -b feature/MSP-1337/super-cool`
|
19
|
+
|
20
|
+
Scenario: GEM_VERSION is not defined
|
21
|
+
Given I overwrite "lib/namespace_spec/version.rb" with:
|
22
|
+
"""
|
23
|
+
module NamespaceSpec
|
24
|
+
module Version
|
25
|
+
#
|
26
|
+
# CONSTANTS
|
27
|
+
#
|
28
|
+
|
29
|
+
# The major version number.
|
30
|
+
MAJOR = 0
|
31
|
+
# The minor version number, scoped to the {MAJOR} version number.
|
32
|
+
MINOR = 0
|
33
|
+
# The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
|
34
|
+
PATCH = 1
|
35
|
+
# The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
|
36
|
+
PRERELEASE = 'super-cool'
|
37
|
+
|
38
|
+
#
|
39
|
+
# Module Methods
|
40
|
+
#
|
41
|
+
|
42
|
+
# The full version string, including the {NamespaceSpec::Version::MAJOR},
|
43
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
44
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
45
|
+
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
46
|
+
#
|
47
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}' on master.
|
48
|
+
# '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}-PRERELEASE'
|
49
|
+
# on any branch other than master.
|
50
|
+
def self.full
|
51
|
+
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
52
|
+
|
53
|
+
if defined? PRERELEASE
|
54
|
+
version = "#{version}-#{PRERELEASE}"
|
55
|
+
end
|
56
|
+
|
57
|
+
version
|
58
|
+
end
|
59
|
+
|
60
|
+
# The full gem version string, including the {NamespaceSpec::Version::MAJOR},
|
61
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
62
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
63
|
+
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
64
|
+
#
|
65
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}'
|
66
|
+
# on master. '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}.PRERELEASE'
|
67
|
+
# on any branch other than master.
|
68
|
+
def self.gem
|
69
|
+
full.gsub('-', '.pre.')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# (see Version.full)
|
74
|
+
VERSION = Version.full
|
75
|
+
end
|
76
|
+
"""
|
77
|
+
When I run `rake spec`
|
78
|
+
Then the exit status should not be 0
|
79
|
+
And the output should contain:
|
80
|
+
"""
|
81
|
+
expected NamespaceSpec::GEM_VERSION to be defined
|
82
|
+
"""
|
83
|
+
# On MRI and JRuby, the error is "uninitialized constant NamespaceSpace::GEM_VERSION", but on Rubinius the error is
|
84
|
+
# "Missing or uninitialized constant: NamespaceSpec::GEM_VERSION", so have to use match
|
85
|
+
And the output should match /uninitialized constant.*NamespaceSpec::GEM_VERSION/
|
86
|
+
And the output should contain " 2 failures"
|
87
|
+
|
88
|
+
Scenario: GEM_VERSION is not equal to Version.gem
|
89
|
+
Given I overwrite "lib/namespace_spec/version.rb" with:
|
90
|
+
"""
|
91
|
+
module NamespaceSpec
|
92
|
+
module Version
|
93
|
+
#
|
94
|
+
# CONSTANTS
|
95
|
+
#
|
96
|
+
|
97
|
+
# The major version number.
|
98
|
+
MAJOR = 0
|
99
|
+
# The minor version number, scoped to the {MAJOR} version number.
|
100
|
+
MINOR = 0
|
101
|
+
# The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
|
102
|
+
PATCH = 1
|
103
|
+
# The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
|
104
|
+
PRERELEASE = 'super-cool'
|
105
|
+
|
106
|
+
#
|
107
|
+
# Module Methods
|
108
|
+
#
|
109
|
+
|
110
|
+
# The full version string, including the {NamespaceSpec::Version::MAJOR},
|
111
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
112
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
113
|
+
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
114
|
+
#
|
115
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}' on master.
|
116
|
+
# '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}-PRERELEASE'
|
117
|
+
# on any branch other than master.
|
118
|
+
def self.full
|
119
|
+
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
120
|
+
|
121
|
+
if defined? PRERELEASE
|
122
|
+
version = "#{version}-#{PRERELEASE}"
|
123
|
+
end
|
124
|
+
|
125
|
+
version
|
126
|
+
end
|
127
|
+
|
128
|
+
# The full gem version string, including the {NamespaceSpec::Version::MAJOR},
|
129
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
130
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
131
|
+
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
132
|
+
#
|
133
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}'
|
134
|
+
# on master. '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}.PRERELEASE'
|
135
|
+
# on any branch other than master.
|
136
|
+
def self.gem
|
137
|
+
full.gsub('-', '.pre.')
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# (see Version.full)
|
142
|
+
GEM_VERSION = Version.full
|
143
|
+
|
144
|
+
# (see Version.full)
|
145
|
+
VERSION = Version.full
|
146
|
+
end
|
147
|
+
"""
|
148
|
+
When I run `rake spec`
|
149
|
+
Then the exit status should not be 0
|
150
|
+
And the output should contain:
|
151
|
+
"""
|
152
|
+
expected NamespaceSpec::GEM_VERSION to equal NamespaceSpec::Version.gem
|
153
|
+
"""
|
154
|
+
And the output should contain " 1 failure"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Feature: metasploit-version install's <namespace>_spec.rb generates proper namespace for gem name
|
2
|
+
|
3
|
+
The <namespace>_spec.rb that checks that GEM_VERSION and VERSION are defined correctly will use the fully-qualified
|
4
|
+
name for the gem namespace with proper conversion of underscored and dashes in the gem name to camel case and separate
|
5
|
+
modules, respectively.
|
6
|
+
|
7
|
+
Scenario Outline:
|
8
|
+
Given I successfully run `bundle gem <gem_name>`
|
9
|
+
And I cd to "<gem_name>"
|
10
|
+
And my git identity is configured
|
11
|
+
And I successfully run `git commit --message "bundle gem <gem_name>"`
|
12
|
+
And I unset the environment variable "TRAVIS_BRANCH"
|
13
|
+
And I set the environment variables to:
|
14
|
+
| variable | value |
|
15
|
+
| TRAVIS_PULL_REQUEST | false |
|
16
|
+
When I successfully run `metasploit-version install --force --no-bundle-install`
|
17
|
+
Then the file "<namespace_spec_rb_path>" should contain exactly:
|
18
|
+
"""
|
19
|
+
RSpec.describe <gem_namespace_module> do
|
20
|
+
it_should_behave_like 'Metasploit::Version GEM_VERSION constant'
|
21
|
+
it_should_behave_like 'Metasploit::Version VERSION constant'
|
22
|
+
end
|
23
|
+
|
24
|
+
"""
|
25
|
+
|
26
|
+
Examples:
|
27
|
+
| gem_name | namespace_spec_rb_path | gem_namespace_module |
|
28
|
+
| single | spec/lib/single_spec.rb | Single |
|
29
|
+
| two_words | spec/lib/two_words_spec.rb | TwoWords |
|
30
|
+
| parent-child | spec/lib/parent/child_spec.rb | Parent::Child |
|
31
|
+
| two_words-child | spec/lib/two_words/child_spec.rb | TwoWords::Child |
|
32
|
+
| parent-two_words | spec/lib/parent/two_words_spec.rb | Parent::TwoWords |
|
33
|
+
| two_words-more_words | spec/lib/two_words/more_words_spec.rb | TwoWords::MoreWords |
|
@@ -0,0 +1,179 @@
|
|
1
|
+
Feature: metasploit-version install's <namespace>_spec.rb uses 'Metasploit::Version VERSION constant' shared example
|
2
|
+
|
3
|
+
The <namespace>_spec.rb will check that VERSION is defined correctly using the 'Metasploit::Version VERSION constant'
|
4
|
+
shared example.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I successfully run `bundle gem namespace_spec`
|
8
|
+
And I cd to "namespace_spec"
|
9
|
+
And my git identity is configured
|
10
|
+
And I successfully run `git commit --message "bundle gem namespace_spec"`
|
11
|
+
And I unset the environment variable "TRAVIS_BRANCH"
|
12
|
+
And I set the environment variables to:
|
13
|
+
| variable | value |
|
14
|
+
| TRAVIS_PULL_REQUEST | false |
|
15
|
+
And I successfully run `metasploit-version install --force --no-bundle-install`
|
16
|
+
And I successfully run `git add *`
|
17
|
+
And I successfully run `git commit --all --message "metasploit-version install"`
|
18
|
+
And I successfully run `git checkout -b feature/MSP-1337/super-cool`
|
19
|
+
|
20
|
+
Scenario: VERSION is not defined
|
21
|
+
# Have to ensure that gemspec doesn't reference the undefined NamespaceSpec::VERSION or rake spec won't even run
|
22
|
+
# due to NameError when gemspec is loaded by bundler.
|
23
|
+
Given I overwrite "namespace_spec.gemspec" with:
|
24
|
+
"""
|
25
|
+
# coding: utf-8
|
26
|
+
|
27
|
+
Gem::Specification.new do |spec|
|
28
|
+
spec.name = "add_development_dependency"
|
29
|
+
spec.version = '0.0.0'
|
30
|
+
spec.authors = ["Luke Imhoff"]
|
31
|
+
spec.email = ["luke_imhoff@rapid7.com"]
|
32
|
+
spec.summary = %q{TODO: Write a short summary. Required.}
|
33
|
+
spec.description = %q{TODO: Write a longer description. Optional.}
|
34
|
+
spec.homepage = ""
|
35
|
+
spec.license = "MIT"
|
36
|
+
|
37
|
+
spec.files = `git ls-files -z`.split("\x0")
|
38
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
39
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
40
|
+
spec.require_paths = ["lib"]
|
41
|
+
|
42
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
43
|
+
spec.add_development_dependency 'metasploit-version'
|
44
|
+
spec.add_development_dependency "rake"
|
45
|
+
end
|
46
|
+
"""
|
47
|
+
And I overwrite "lib/namespace_spec/version.rb" with:
|
48
|
+
"""
|
49
|
+
module NamespaceSpec
|
50
|
+
module Version
|
51
|
+
#
|
52
|
+
# CONSTANTS
|
53
|
+
#
|
54
|
+
|
55
|
+
# The major version number.
|
56
|
+
MAJOR = 0
|
57
|
+
# The minor version number, scoped to the {MAJOR} version number.
|
58
|
+
MINOR = 0
|
59
|
+
# The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
|
60
|
+
PATCH = 1
|
61
|
+
# The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
|
62
|
+
PRERELEASE = 'super-cool'
|
63
|
+
|
64
|
+
#
|
65
|
+
# Module Methods
|
66
|
+
#
|
67
|
+
|
68
|
+
# The full version string, including the {NamespaceSpec::Version::MAJOR},
|
69
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
70
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
71
|
+
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
72
|
+
#
|
73
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}' on master.
|
74
|
+
# '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}-PRERELEASE'
|
75
|
+
# on any branch other than master.
|
76
|
+
def self.full
|
77
|
+
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
78
|
+
|
79
|
+
if defined? PRERELEASE
|
80
|
+
version = "#{version}-#{PRERELEASE}"
|
81
|
+
end
|
82
|
+
|
83
|
+
version
|
84
|
+
end
|
85
|
+
|
86
|
+
# The full gem version string, including the {NamespaceSpec::Version::MAJOR},
|
87
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
88
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
89
|
+
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
90
|
+
#
|
91
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}'
|
92
|
+
# on master. '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}.PRERELEASE'
|
93
|
+
# on any branch other than master.
|
94
|
+
def self.gem
|
95
|
+
full.gsub('-', '.pre.')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# (see Version.gem)
|
100
|
+
GEM_VERSION = Version.gem
|
101
|
+
end
|
102
|
+
"""
|
103
|
+
When I run `rake spec`
|
104
|
+
Then the exit status should not be 0
|
105
|
+
And the output should contain:
|
106
|
+
"""
|
107
|
+
expected NamespaceSpec::VERSION to be defined
|
108
|
+
"""
|
109
|
+
# On MRI and JRuby, the error is "uninitialized constant NamespaceSpace::VERSION", but on Rubinius the error is
|
110
|
+
# "Missing or uninitialized constant: NamespaceSpec::VERSION", so have to use match
|
111
|
+
And the output should match /uninitialized constant.*NamespaceSpec::VERSION/
|
112
|
+
And the output should contain " 2 failures"
|
113
|
+
|
114
|
+
Scenario: VERSION is not equal to Version.full
|
115
|
+
Given I overwrite "lib/namespace_spec/version.rb" with:
|
116
|
+
"""
|
117
|
+
module NamespaceSpec
|
118
|
+
module Version
|
119
|
+
#
|
120
|
+
# CONSTANTS
|
121
|
+
#
|
122
|
+
|
123
|
+
# The major version number.
|
124
|
+
MAJOR = 0
|
125
|
+
# The minor version number, scoped to the {MAJOR} version number.
|
126
|
+
MINOR = 0
|
127
|
+
# The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
|
128
|
+
PATCH = 1
|
129
|
+
# The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
|
130
|
+
PRERELEASE = 'super-cool'
|
131
|
+
|
132
|
+
#
|
133
|
+
# Module Methods
|
134
|
+
#
|
135
|
+
|
136
|
+
# The full version string, including the {NamespaceSpec::Version::MAJOR},
|
137
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
138
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
139
|
+
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
140
|
+
#
|
141
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}' on master.
|
142
|
+
# '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}-PRERELEASE'
|
143
|
+
# on any branch other than master.
|
144
|
+
def self.full
|
145
|
+
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
146
|
+
|
147
|
+
if defined? PRERELEASE
|
148
|
+
version = "#{version}-#{PRERELEASE}"
|
149
|
+
end
|
150
|
+
|
151
|
+
version
|
152
|
+
end
|
153
|
+
|
154
|
+
# The full gem version string, including the {NamespaceSpec::Version::MAJOR},
|
155
|
+
# {NamespaceSpec::Version::MINOR}, {NamespaceSpec::Version::PATCH}, and optionally, the
|
156
|
+
# `NamespaceSpec::Version::PRERELEASE` in the
|
157
|
+
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
158
|
+
#
|
159
|
+
# @return [String] '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}'
|
160
|
+
# on master. '{NamespaceSpec::Version::MAJOR}.{NamespaceSpec::Version::MINOR}.{NamespaceSpec::Version::PATCH}.PRERELEASE'
|
161
|
+
# on any branch other than master.
|
162
|
+
def self.gem
|
163
|
+
full.gsub('-', '.pre.')
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
# (see Version.gem)
|
168
|
+
GEM_VERSION = Version.gem
|
169
|
+
|
170
|
+
VERSION = '1.2.3'
|
171
|
+
end
|
172
|
+
"""
|
173
|
+
When I run `rake spec`
|
174
|
+
Then the exit status should not be 0
|
175
|
+
And the output should contain:
|
176
|
+
"""
|
177
|
+
expected NamespaceSpec::VERSION to equal NamespaceSpec::Version.full
|
178
|
+
"""
|
179
|
+
And the output should contain " 1 failure"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: metasploit-version install will setup rspec and rake spec
|
2
|
+
|
3
|
+
metasploit-version will call setup `spec/spec_helper.rb` and the `Rakefile` so that the user can run `rake spec` after
|
4
|
+
`metasploit-version install` completes
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I successfully run `bundle gem specced`
|
8
|
+
And I cd to "specced"
|
9
|
+
And my git identity is configured
|
10
|
+
And I successfully run `git commit --message "bundle gem specced"`
|
11
|
+
And I unset the environment variable "TRAVIS_BRANCH"
|
12
|
+
And I set the environment variables to:
|
13
|
+
| variable | value |
|
14
|
+
| TRAVIS_PULL_REQUEST | false |
|
15
|
+
And I successfully run `metasploit-version install --force --no-bundle-install`
|
16
|
+
|
17
|
+
Scenario: spec is a listed task
|
18
|
+
When I run `rake -T`
|
19
|
+
Then the output should contain "rake spec"
|
20
|
+
|
21
|
+
Scenario: `rake spec` runs without error
|
22
|
+
When I successfully run `rake spec`
|
23
|
+
Then the output should contain "0 failures"
|
24
|
+
|
25
|
+
Scenario: `rake` runs `rake spec` by default
|
26
|
+
When I successfully run `rake`
|
27
|
+
Then the output should contain "0 failures"
|
@@ -0,0 +1,50 @@
|
|
1
|
+
Feature: metasplopit install should add RELEASING.md that handles multiple ruby versions
|
2
|
+
|
3
|
+
`metasploit-version` install should default to release instructions for MRI `ruby` and `jruby` with the ability to
|
4
|
+
override this default.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I successfully run `bundle gem released`
|
8
|
+
And I cd to "released"
|
9
|
+
And my git identity is configured
|
10
|
+
And I successfully run `git commit --message "bundle gem released"`
|
11
|
+
And I unset the environment variable "TRAVIS_BRANCH"
|
12
|
+
And I set the environment variables to:
|
13
|
+
| variable | value |
|
14
|
+
| TRAVIS_PULL_REQUEST | false |
|
15
|
+
|
16
|
+
Scenario: Default ruby versions
|
17
|
+
When I successfully run `metasploit-version install --force --no-bundle-install`
|
18
|
+
Then the file "RELEASING.md" should contain:
|
19
|
+
"""
|
20
|
+
|
21
|
+
## jruby
|
22
|
+
- [ ] `rvm use jruby@released`
|
23
|
+
- [ ] `rm Gemfile.lock`
|
24
|
+
- [ ] `bundle install`
|
25
|
+
- [ ] `rake release`
|
26
|
+
|
27
|
+
## ruby-2.1
|
28
|
+
- [ ] `rvm use ruby-2.1@released`
|
29
|
+
- [ ] `rm Gemfile.lock`
|
30
|
+
- [ ] `bundle install`
|
31
|
+
- [ ] `rake release`
|
32
|
+
```
|
33
|
+
|
34
|
+
### Downstream dependencies
|
35
|
+
"""
|
36
|
+
|
37
|
+
Scenario: Overridden ruby versions
|
38
|
+
When I successfully run `metasploit-version install --force --no-bundle-install --ruby-versions maglev`
|
39
|
+
Then the file "RELEASING.md" should contain:
|
40
|
+
"""
|
41
|
+
|
42
|
+
## maglev
|
43
|
+
- [ ] `rvm use maglev@released`
|
44
|
+
- [ ] `rm Gemfile.lock`
|
45
|
+
- [ ] `bundle install`
|
46
|
+
- [ ] `rake release`
|
47
|
+
```
|
48
|
+
|
49
|
+
### Downstream dependencies
|
50
|
+
"""
|