metasploit-yard 1.0.3 → 1.1.0
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
- checksums.yaml.gz.sig +3 -0
- data/.travis.yml +6 -17
- data/Gemfile +2 -0
- data/features/rake_task.feature +5 -2
- data/lib/metasploit/yard/version.rb +11 -38
- data/metasploit-yard.gemspec +2 -2
- data/spec/metasploit/yard_spec.rb +1 -1
- data/spec/spec_helper.rb +9 -12
- data.tar.gz.sig +1 -0
- metadata +81 -20
- metadata.gz.sig +0 -0
- data/spec/metasploit/yard/version_spec.rb +0 -143
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a02787f924641dd181f86a16472332cd8dddaaa2
|
4
|
+
data.tar.gz: 69292652fe5eecd3062f4771ccab050843e2959f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d36aecd177cf29c9b853d7d87c26159232897ac4a20a6d88d73804538e0e16f928fe6615dcaa04ab77e65a1a915d42d3aaa0129a99b5567a3024993eb0a39f4
|
7
|
+
data.tar.gz: e487634a0c6d619e41c1f1c8cd97b1c4592adf9c530bf6dd6a37f90745acfe101d4c323adc5479b4d50442db200e4d48f6a661f8cbb731c7f010e16529cc9ce0
|
checksums.yaml.gz.sig
ADDED
data/.travis.yml
CHANGED
@@ -1,19 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
- secure: "IxVtzpee/XU/Qkw9g88uXX9GtQkzeUNVx05LYpfBuZWjQZWggrTp4k91HyquBNZkg30I5l7iHLbuhMB2c2SyNPN1OfkkhWZjeerJzRtaGDn7RXTAfdKUCtDceZPnl9Kv4Wbk6I2pVsXpROOP0VaPjLgod7aJqHfnw4AvP8yZbDg="
|
4
|
-
matrix:
|
5
|
-
- RAKE_TASK=cucumber
|
6
|
-
- RAKE_TASK=spec
|
1
|
+
group: stable
|
2
|
+
sudo: false
|
7
3
|
language: ruby
|
8
|
-
matrix:
|
9
|
-
# documentation coverage is not influenced by ruby implementation, so only run once
|
10
|
-
include:
|
11
|
-
- rvm: 2.1
|
12
|
-
env: RAKE_TASK=yard:stats
|
13
4
|
rvm:
|
14
|
-
-
|
15
|
-
|
16
|
-
|
17
|
-
script:
|
18
|
-
addons:
|
19
|
-
postgresql: '9.3'
|
5
|
+
- 2.2
|
6
|
+
before_install:
|
7
|
+
- gem update bundler
|
8
|
+
script: bundle exec rake spec cucumber yard
|
data/Gemfile
CHANGED
data/features/rake_task.feature
CHANGED
@@ -3,11 +3,13 @@ Feature: yard.rake
|
|
3
3
|
In order to generate documentation for metasploit projects, but not end up with multiple actions for the `yard` rake tasks
|
4
4
|
As a developer calling `rake yard`
|
5
5
|
I want `yard.rake` loaded from `metasploit-yard`
|
6
|
-
|
6
|
+
|
7
|
+
@travis-ci-wip
|
7
8
|
Scenario: Without Rails
|
8
9
|
Given I create a clean gemset "without_rails_use_metasploit_yard"
|
9
10
|
And I use gemset "without_rails_use_metasploit_yard"
|
10
|
-
And I successfully run `
|
11
|
+
And I successfully run `gem install bundler`
|
12
|
+
And I successfully run `bundle gem without_rails_use_metasploit_yard --test=rspec`
|
11
13
|
And I cd to "without_rails_use_metasploit_yard"
|
12
14
|
And I overwrite "without_rails_use_metasploit_yard.gemspec" with:
|
13
15
|
"""
|
@@ -31,6 +33,7 @@ Feature: yard.rake
|
|
31
33
|
|
32
34
|
spec.add_development_dependency 'bundler'
|
33
35
|
spec.add_development_dependency 'rake'
|
36
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
34
37
|
spec.add_development_dependency 'metasploit-yard'
|
35
38
|
end
|
36
39
|
"""
|
@@ -1,43 +1,16 @@
|
|
1
1
|
module Metasploit
|
2
2
|
module Yard
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
14
|
-
#
|
15
|
-
# @return [String] '{MAJOR}.{MINOR}.{PATCH}' on master. '{MAJOR}.{MINOR}.{PATCH}-PRERELEASE' on any branch
|
16
|
-
# other than master.
|
17
|
-
def self.full
|
18
|
-
version = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
19
|
-
|
20
|
-
if defined? PRERELEASE
|
21
|
-
version = "#{version}-#{PRERELEASE}"
|
22
|
-
end
|
23
|
-
|
24
|
-
version
|
25
|
-
end
|
26
|
-
|
27
|
-
# The full gem version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the PRERELEASE in the
|
28
|
-
# {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
|
29
|
-
#
|
30
|
-
# @return [String] '{MAJOR}.{MINOR}.{PATCH}' on master. '{MAJOR}.{MINOR}.{PATCH}.PRERELEASE' on any branch
|
31
|
-
# other than master.
|
32
|
-
def self.gem
|
33
|
-
full.gsub('-', '.pre.')
|
34
|
-
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
|
35
13
|
end
|
36
|
-
|
37
|
-
# @see Version.gem
|
38
|
-
GEM_VERSION = Version.gem
|
39
|
-
|
40
|
-
# @see Version.full
|
41
|
-
VERSION = Version.full
|
14
|
+
|
42
15
|
end
|
43
16
|
end
|
data/metasploit-yard.gemspec
CHANGED
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
|
|
23
23
|
# assert_valid_keys
|
24
24
|
spec.add_development_dependency 'activesupport'
|
25
25
|
spec.add_development_dependency 'aruba'
|
26
|
-
spec.add_development_dependency 'bundler'
|
27
|
-
spec.add_development_dependency 'codeclimate-test-reporter'
|
26
|
+
spec.add_development_dependency 'bundler'
|
27
|
+
# spec.add_development_dependency 'codeclimate-test-reporter'
|
28
28
|
spec.add_development_dependency 'coveralls'
|
29
29
|
spec.add_development_dependency 'cucumber'
|
30
30
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
data/spec/spec_helper.rb
CHANGED
@@ -1,22 +1,19 @@
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
2
|
|
3
3
|
# require before 'metasploit/version' so coverage is shown for files required by 'metasploit/version'
|
4
|
-
require 'codeclimate-test-reporter'
|
5
|
-
require 'coveralls'
|
4
|
+
# require 'codeclimate-test-reporter'
|
5
|
+
# require 'coveralls'
|
6
6
|
require 'simplecov'
|
7
7
|
|
8
|
-
if ENV['TRAVIS'] == 'true'
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
if CodeClimate::TestReporter.run?
|
13
|
-
formatters << CodeClimate::TestReporter::Formatter
|
14
|
-
end
|
15
|
-
|
8
|
+
# if ENV['TRAVIS'] == 'true'
|
9
|
+
# # don't generate local report as it is inaccessible on travis-ci, which is why coveralls is being used.
|
10
|
+
# SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
11
|
+
# else
|
16
12
|
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
17
|
-
|
13
|
+
# either generate the local report
|
14
|
+
SimpleCov::Formatter::HTMLFormatter
|
18
15
|
]
|
19
|
-
end
|
16
|
+
# end
|
20
17
|
|
21
18
|
require 'metasploit/yard'
|
22
19
|
|
data.tar.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
i!f��?oWF
|
metadata
CHANGED
@@ -1,14 +1,91 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit-yard
|
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: activesupport
|
@@ -40,20 +117,6 @@ dependencies:
|
|
40
117
|
version: '0'
|
41
118
|
- !ruby/object:Gem::Dependency
|
42
119
|
name: bundler
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1.5'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1.5'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: codeclimate-test-reporter
|
57
120
|
requirement: !ruby/object:Gem::Requirement
|
58
121
|
requirements:
|
59
122
|
- - ">="
|
@@ -202,7 +265,6 @@ files:
|
|
202
265
|
- metasploit-yard.gemspec
|
203
266
|
- spec/metasploit/yard/aruba/rvm_env/export_spec.rb
|
204
267
|
- spec/metasploit/yard/aruba/rvm_env/prepend_spec.rb
|
205
|
-
- spec/metasploit/yard/version_spec.rb
|
206
268
|
- spec/metasploit/yard_spec.rb
|
207
269
|
- spec/spec_helper.rb
|
208
270
|
homepage: https://github.com/rapid7/
|
@@ -225,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
287
|
version: '0'
|
226
288
|
requirements: []
|
227
289
|
rubyforge_project:
|
228
|
-
rubygems_version: 2.4.
|
290
|
+
rubygems_version: 2.4.8
|
229
291
|
signing_key:
|
230
292
|
specification_version: 4
|
231
293
|
summary: yard rake tasks
|
@@ -236,7 +298,6 @@ test_files:
|
|
236
298
|
- features/support/env.rb
|
237
299
|
- spec/metasploit/yard/aruba/rvm_env/export_spec.rb
|
238
300
|
- spec/metasploit/yard/aruba/rvm_env/prepend_spec.rb
|
239
|
-
- spec/metasploit/yard/version_spec.rb
|
240
301
|
- spec/metasploit/yard_spec.rb
|
241
302
|
- spec/spec_helper.rb
|
242
303
|
has_rdoc:
|
metadata.gz.sig
ADDED
Binary file
|
@@ -1,143 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe Metasploit::Yard::Version do
|
4
|
-
context 'CONSTANTS' do
|
5
|
-
context 'MAJOR' do
|
6
|
-
subject(:major) do
|
7
|
-
described_class::MAJOR
|
8
|
-
end
|
9
|
-
|
10
|
-
it { is_expected.to be_a Integer }
|
11
|
-
end
|
12
|
-
|
13
|
-
context 'MINOR' do
|
14
|
-
subject(:minor) do
|
15
|
-
described_class::MINOR
|
16
|
-
end
|
17
|
-
|
18
|
-
it { is_expected.to be_a Integer }
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'PATCH' do
|
22
|
-
subject(:patch) do
|
23
|
-
described_class::PATCH
|
24
|
-
end
|
25
|
-
|
26
|
-
it { is_expected.to be_a Integer }
|
27
|
-
end
|
28
|
-
|
29
|
-
pull_request = ENV['TRAVIS_PULL_REQUEST']
|
30
|
-
|
31
|
-
# a pull request cannot check PRERELEASE because it will be tested in the target branch, but the source itself
|
32
|
-
# is from the source branch and so has the source branch PRERELEASE.
|
33
|
-
#
|
34
|
-
# PRERELEASE can only be set appropriately for a merge by merging to the target branch and then updating PRERELEASE
|
35
|
-
# on the target branch before committing and/or pushing to github and travis-ci.
|
36
|
-
if pull_request.nil? || pull_request == 'false'
|
37
|
-
context 'PREPRELEASE' do
|
38
|
-
subject(:prerelease) do
|
39
|
-
described_class::PRERELEASE
|
40
|
-
end
|
41
|
-
|
42
|
-
branch = ENV['TRAVIS_BRANCH']
|
43
|
-
|
44
|
-
if branch.nil? || branch.empty?
|
45
|
-
branch = `git rev-parse --abbrev-ref HEAD`.strip
|
46
|
-
end
|
47
|
-
|
48
|
-
if branch == 'master'
|
49
|
-
it 'does not have a PRERELEASE' do
|
50
|
-
expect(defined? described_class::PRERELEASE).to be_nil
|
51
|
-
end
|
52
|
-
else
|
53
|
-
branch_regex = %r{\A(?:refs/remotes/)?(?<type>bug|chore|feature|staging)(/(?<story>[^/]+))?/(?<prerelease>[^\/]+)\z}
|
54
|
-
match = branch.match(branch_regex)
|
55
|
-
|
56
|
-
if match
|
57
|
-
it 'matches the branch relative name' do
|
58
|
-
expected_prerelease = match[:prerelease]
|
59
|
-
|
60
|
-
expect(defined? described_class::PRERELEASE).not_to be_nil,
|
61
|
-
"PRERELEASE should be defined as #{expected_prerelease.inspect}"
|
62
|
-
expect(prerelease).to eq(expected_prerelease)
|
63
|
-
end
|
64
|
-
else
|
65
|
-
tag_regex = /\Av(?<major>\d+).(?<minor>\d+).(?<patch>\d+)(\.pre\.(?<prerelease>.*))?\z/
|
66
|
-
# travis-ci sets TRAVIS_BRANCH to the tag name for tag builds
|
67
|
-
match = branch.match(tag_regex)
|
68
|
-
|
69
|
-
if match
|
70
|
-
tag_prerelease = match[:prerelease]
|
71
|
-
|
72
|
-
if tag_prerelease
|
73
|
-
it 'matches the tag prerelease converted from a gem version to a VERSION' do
|
74
|
-
expect(prerelease).to eq(tag_prerelease.gsub('.pre.', '-'))
|
75
|
-
end
|
76
|
-
else
|
77
|
-
it 'does not have a PRERELEASE' do
|
78
|
-
expect(defined? described_class::PRERELEASE).to be_nil
|
79
|
-
end
|
80
|
-
end
|
81
|
-
else
|
82
|
-
it 'has a abbreviated reference that can be parsed for prerelease' do
|
83
|
-
fail "Do not know how to parse #{branch.inspect} for PRERELEASE"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context 'full' do
|
93
|
-
subject(:full) do
|
94
|
-
described_class.full
|
95
|
-
end
|
96
|
-
|
97
|
-
#
|
98
|
-
# lets
|
99
|
-
#
|
100
|
-
|
101
|
-
let(:major) do
|
102
|
-
1
|
103
|
-
end
|
104
|
-
|
105
|
-
let(:minor) do
|
106
|
-
2
|
107
|
-
end
|
108
|
-
|
109
|
-
let(:patch) do
|
110
|
-
3
|
111
|
-
end
|
112
|
-
|
113
|
-
before(:each) do
|
114
|
-
stub_const("#{described_class}::MAJOR", major)
|
115
|
-
stub_const("#{described_class}::MINOR", minor)
|
116
|
-
stub_const("#{described_class}::PATCH", patch)
|
117
|
-
end
|
118
|
-
|
119
|
-
context 'with PRERELEASE' do
|
120
|
-
let(:prerelease) do
|
121
|
-
'prerelease'
|
122
|
-
end
|
123
|
-
|
124
|
-
before(:each) do
|
125
|
-
stub_const("#{described_class}::PRERELEASE", prerelease)
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'is <major>.<minor>.<patch>-<prerelease>' do
|
129
|
-
expect(full).to eq("#{major}.#{minor}.#{patch}-#{prerelease}")
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
context 'without PRERELEASE' do
|
134
|
-
before(:each) do
|
135
|
-
hide_const("#{described_class}::PRERELEASE")
|
136
|
-
end
|
137
|
-
|
138
|
-
it 'is <major>.<minor>.<patch>' do
|
139
|
-
expect(full).to eq("#{major}.#{minor}.#{patch}")
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|