metasploit-yard 1.0.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +24 -0
- data/.rspec +2 -0
- data/.simplecov +42 -0
- data/.travis.yml +21 -0
- data/.yardopts +7 -0
- data/CONTRIBUTING.md +178 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +29 -0
- data/README.md +114 -0
- data/Rakefile +19 -0
- data/config/cucumber.yml +6 -0
- data/features/rake_task.feature +90 -0
- data/features/step_definitions/project.rb +25 -0
- data/features/step_definitions/rvm.rb +46 -0
- data/features/support/env.rb +8 -0
- data/lib/metasploit/yard.rb +20 -0
- data/lib/metasploit/yard/aruba.rb +12 -0
- data/lib/metasploit/yard/aruba/rvm_env.rb +105 -0
- data/lib/metasploit/yard/aruba/rvm_env/export.rb +75 -0
- data/lib/metasploit/yard/aruba/rvm_env/prepend.rb +35 -0
- data/lib/metasploit/yard/aruba/rvm_env/unset.rb +44 -0
- data/lib/metasploit/yard/aruba/rvm_env/variable.rb +32 -0
- data/lib/metasploit/yard/railtie.rb +10 -0
- data/lib/metasploit/yard/version.rb +43 -0
- data/lib/tasks/yard.rake +58 -0
- data/metasploit-yard.gemspec +50 -0
- data/spec/metasploit/yard/aruba/rvm_env/export_spec.rb +95 -0
- data/spec/metasploit/yard/aruba/rvm_env/prepend_spec.rb +95 -0
- data/spec/metasploit/yard/version_spec.rb +143 -0
- data/spec/metasploit/yard_spec.rb +15 -0
- data/spec/spec_helper.rb +77 -0
- metadata +240 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e8ead908270612fce275fe39a9fc8d48367ad12a
|
4
|
+
data.tar.gz: bd5abd6f072446ffd62001434da7bb8d294e733f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d7c7ea17a98d93487312362da2c32fe7f60475c848488b7ec7a83c002a4755d5d8936e8dfaf8d3ca68d84757e6fbcfa9f758d2bf6d51c74ae0c6b9561d0814a3
|
7
|
+
data.tar.gz: 1a790f9eb46a0c681aa2d68d9ae57481e396f8d8ef5541c3eb0eb805592ce80e17eb9b51557902df2a21d2ae5411f7abe5f5c99c67727eaa33475cf4e97c5223
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.gitignore
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Rubymine
|
2
|
+
/.idea
|
3
|
+
|
4
|
+
*.gem
|
5
|
+
*.rbc
|
6
|
+
.bundle
|
7
|
+
.config
|
8
|
+
.yardoc
|
9
|
+
Gemfile.lock
|
10
|
+
InstalledFiles
|
11
|
+
_yardoc
|
12
|
+
coverage
|
13
|
+
doc/
|
14
|
+
lib/bundler/man
|
15
|
+
pkg
|
16
|
+
rdoc
|
17
|
+
spec/reports
|
18
|
+
test/tmp
|
19
|
+
test/version_tmp
|
20
|
+
tmp
|
21
|
+
|
22
|
+
# RVM
|
23
|
+
.ruby-version
|
24
|
+
.ruby-gemset
|
data/.rspec
ADDED
data/.simplecov
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# RM_INFO is set when using Rubymine. In Rubymine, starting SimpleCov is
|
2
|
+
# controlled by running with coverage, so don't explicitly start coverage (and
|
3
|
+
# therefore generate a report) when in Rubymine. This _will_ generate a report
|
4
|
+
# whenever `rake spec` is run.
|
5
|
+
unless ENV['RM_INFO']
|
6
|
+
SimpleCov.start
|
7
|
+
end
|
8
|
+
|
9
|
+
SimpleCov.configure do
|
10
|
+
# ignore this file
|
11
|
+
add_filter '.simplecov'
|
12
|
+
|
13
|
+
# Rake tasks aren't tested with rspec
|
14
|
+
add_filter 'Rakefile'
|
15
|
+
add_filter 'lib/tasks'
|
16
|
+
|
17
|
+
#
|
18
|
+
# Changed Files in Git Group
|
19
|
+
# @see http://fredwu.me/post/35625566267/simplecov-test-coverage-for-changed-files-only
|
20
|
+
#
|
21
|
+
|
22
|
+
untracked = `git ls-files --exclude-standard --others`
|
23
|
+
unstaged = `git diff --name-only`
|
24
|
+
staged = `git diff --name-only --cached`
|
25
|
+
all = untracked + unstaged + staged
|
26
|
+
changed_filenames = all.split("\n")
|
27
|
+
|
28
|
+
add_group 'Changed' do |source_file|
|
29
|
+
changed_filenames.detect { |changed_filename|
|
30
|
+
source_file.filename.end_with?(changed_filename)
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
add_group 'Libraries', 'lib'
|
35
|
+
|
36
|
+
#
|
37
|
+
# Specs are reported on to ensure that all examples are being run and all
|
38
|
+
# lets, befores, afters, etc are being used.
|
39
|
+
#
|
40
|
+
|
41
|
+
add_group 'Specs', 'spec'
|
42
|
+
end
|
data/.travis.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- secure: "IxVtzpee/XU/Qkw9g88uXX9GtQkzeUNVx05LYpfBuZWjQZWggrTp4k91HyquBNZkg30I5l7iHLbuhMB2c2SyNPN1OfkkhWZjeerJzRtaGDn7RXTAfdKUCtDceZPnl9Kv4Wbk6I2pVsXpROOP0VaPjLgod7aJqHfnw4AvP8yZbDg="
|
4
|
+
matrix:
|
5
|
+
- RAKE_TASK=cucumber
|
6
|
+
- RAKE_TASK=spec
|
7
|
+
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
|
13
|
+
rvm:
|
14
|
+
- '1.9.3'
|
15
|
+
- '2.0'
|
16
|
+
- '2.1'
|
17
|
+
- 'ruby-head'
|
18
|
+
# jruby fails rake cucumber (see MSP-11240)
|
19
|
+
# - 'jruby-19mode'
|
20
|
+
- 'rbx-2.2'
|
21
|
+
script: "bundle exec rake $RAKE_TASK"
|
data/.yardopts
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
## Forking
|
4
|
+
|
5
|
+
[Fork this repository](https://github.com/rapid7/metasploit-yard/fork)
|
6
|
+
|
7
|
+
## Branching
|
8
|
+
|
9
|
+
Branch names follow the format `TYPE/ISSUE/SUMMARY`. You can create it with `git checkout -b TYPE/ISSUE/SUMMARY`.
|
10
|
+
|
11
|
+
### `TYPE`
|
12
|
+
|
13
|
+
`TYPE` can be `bug`, `chore`, or `feature`.
|
14
|
+
|
15
|
+
### `ISSUE`
|
16
|
+
|
17
|
+
`ISSUE` is either a [Github issue](https://github.com/rapid7/metasploit-yard/issues) or an issue from some other
|
18
|
+
issue tracking software.
|
19
|
+
|
20
|
+
### `SUMMARY`
|
21
|
+
|
22
|
+
`SUMMARY` is is short summary of the purpose of the branch composed of lower case words separated by '-' so that it is a valid `PRERELEASE` for the Gem version.
|
23
|
+
|
24
|
+
## Changes
|
25
|
+
|
26
|
+
### `PRERELEASE`
|
27
|
+
|
28
|
+
1. Update `PRERELEASE` to match the `SUMMARY` in the branch name. If you branched from `master`, and [version.rb](lib/metasploit/yard/version.rb) does not have `PRERELEASE` defined, then adding the following lines after `PATCH`:
|
29
|
+
```
|
30
|
+
# The prerelease version, scoped to the {PATCH} version number.
|
31
|
+
PRERELEASE = '<SUMMARY>'
|
32
|
+
```
|
33
|
+
2. `rake spec`
|
34
|
+
3. Verify the specs pass, which indicates that `PRERELEASE` was updated correctly.
|
35
|
+
4. Commit the change `git commit -a`
|
36
|
+
|
37
|
+
### Your changes
|
38
|
+
|
39
|
+
Make your changes or however many commits you like, commiting each with `git commit`.
|
40
|
+
|
41
|
+
### Pre-Pull Request Testing
|
42
|
+
|
43
|
+
1. Run specs one last time before opening the Pull Request: `rake spec`
|
44
|
+
2. Verify there was no failures.
|
45
|
+
|
46
|
+
### Push
|
47
|
+
|
48
|
+
Push your branch to your fork on gitub: `git push push TYPE/ISSUE/SUMMARY`
|
49
|
+
|
50
|
+
### Pull Request
|
51
|
+
|
52
|
+
* [Create new Pull Request](https://github.com/rapid7/metasploit-yard/compare/)
|
53
|
+
* Add a Verification Steps comment
|
54
|
+
|
55
|
+
```
|
56
|
+
# Verification Steps
|
57
|
+
|
58
|
+
- [ ] `bundle install`
|
59
|
+
|
60
|
+
## `rake cucumber`
|
61
|
+
- [ ] `rake cucumber`
|
62
|
+
- [ ] VERIFY no failures
|
63
|
+
|
64
|
+
## `rake spec`
|
65
|
+
- [ ] `rake spec`
|
66
|
+
- [ ] VERIFY no failures
|
67
|
+
```
|
68
|
+
You should also include at least one scenario to manually check the changes outside of specs.
|
69
|
+
|
70
|
+
* Add a Post-merge Steps comment
|
71
|
+
|
72
|
+
The 'Post-merge Steps' are a reminder to the reviewer of the Pull Request of how to update the [`PRERELEASE`](lib/metasploit/yard/version.rb) so that [version_spec.rb](spec/lib/metasploit/yard/version_spec.rb) passes on the target branch after the merge.
|
73
|
+
|
74
|
+
DESTINATION is the name of the destination branch into which the merge is being made. SOURCE_SUMMARY is the SUMMARY from TYPE/ISSUE/SUMMARY branch name for the SOURCE branch that is being made.
|
75
|
+
|
76
|
+
When merging to `master`:
|
77
|
+
|
78
|
+
```
|
79
|
+
# Post-merge Steps
|
80
|
+
|
81
|
+
Perform these steps prior to pushing to master or the build will be broke on master.
|
82
|
+
|
83
|
+
## Version
|
84
|
+
- [ ] Edit `lib/metasploit/yard/version.rb`
|
85
|
+
- [ ] Remove `PRERELEASE` and its comment as `PRERELEASE` is not defined on master.
|
86
|
+
|
87
|
+
## Gem build
|
88
|
+
- [ ] gem build *.gemspec
|
89
|
+
- [ ] VERIFY the gem has no '.pre' version suffix.
|
90
|
+
|
91
|
+
## RSpec
|
92
|
+
- [ ] `rake spec`
|
93
|
+
- [ ] VERIFY version examples pass without failures
|
94
|
+
|
95
|
+
## Commit & Push
|
96
|
+
- [ ] `git commit -a`
|
97
|
+
- [ ] `git push origin master`
|
98
|
+
```
|
99
|
+
|
100
|
+
When merging to DESTINATION other than `master`:
|
101
|
+
|
102
|
+
```
|
103
|
+
# Post-merge Steps
|
104
|
+
|
105
|
+
Perform these steps prior to pushing to DESTINATION or the build will be broke on DESTINATION.
|
106
|
+
|
107
|
+
## Version
|
108
|
+
- [ ] Edit `lib/metasploit/yard/version.rb`
|
109
|
+
- [ ] Change `PRERELEASE` from `SOURCE_SUMMARY` to `DESTINATION_SUMMARY` to match the branch (DESTINATION) summary (DESTINATION_SUMMARY)
|
110
|
+
|
111
|
+
## Gem build
|
112
|
+
- [ ] gem build *.gemspec
|
113
|
+
- [ ] VERIFY the prerelease suffix has change on the gem.
|
114
|
+
|
115
|
+
## RSpec
|
116
|
+
- [ ] `rake spec`
|
117
|
+
- [ ] VERIFY version examples pass without failures
|
118
|
+
|
119
|
+
## Commit & Push
|
120
|
+
- [ ] `git commit -a`
|
121
|
+
- [ ] `git push origin DESTINATION`
|
122
|
+
```
|
123
|
+
|
124
|
+
* Add a 'Release Steps' comment
|
125
|
+
|
126
|
+
The 'Release Steps' are a reminder to the reviewer of the Pull Request of how to release the gem.
|
127
|
+
|
128
|
+
```
|
129
|
+
# Release
|
130
|
+
|
131
|
+
Complete these steps on DESTINATION
|
132
|
+
|
133
|
+
## `VERSION`
|
134
|
+
|
135
|
+
### Incompatible API changes
|
136
|
+
|
137
|
+
If your changes are incompatible with the previous branch's API, such as removing APIs or removing parts of API
|
138
|
+
signatures:
|
139
|
+
|
140
|
+
- [ ] Increment [`MAJOR`](lib/metasploit/yard/version.rb)
|
141
|
+
- [ ] Reset [`MINOR`](lib/metasploit/yard/version.rb) to `0`
|
142
|
+
- [ ] Reset [`PATCH`](lib/metasploit/yard/version.rb) to `0`
|
143
|
+
- [ ] Commit
|
144
|
+
|
145
|
+
### Compatible API changes
|
146
|
+
|
147
|
+
If your changes are compatible with the previous branch's API, such as adding an API or adding options or optional
|
148
|
+
positional arguments to an API:
|
149
|
+
|
150
|
+
- [ ] Increment [`MINOR`](lib/metasploit/yard/version.rb)
|
151
|
+
- [ ] Reset [`PATCH`](lib/metasploit/yard/version.rb) to `0`.
|
152
|
+
- [ ] Commit
|
153
|
+
|
154
|
+
### Compatible bug fixes
|
155
|
+
|
156
|
+
If your changes are a bug fix that don't impact the APIs, then:
|
157
|
+
|
158
|
+
- [ ] Increment [`PATCH`](lib/metasploit/yard/version.rb)
|
159
|
+
- [ ] Commit
|
160
|
+
|
161
|
+
## JRuby
|
162
|
+
- [ ] `rvm use jruby@metasploit-yard`
|
163
|
+
- [ ] `rm Gemfile.lock`
|
164
|
+
- [ ] `bundle install`
|
165
|
+
- [ ] `rake release`
|
166
|
+
|
167
|
+
## MRI Ruby
|
168
|
+
- [ ] `rvm use ruby-2.1@metasploit-yard`
|
169
|
+
- [ ] `rm Gemfile.lock`
|
170
|
+
- [ ] `bundle install`
|
171
|
+
- [ ] `rake release`
|
172
|
+
```
|
173
|
+
|
174
|
+
### Downstream dependencies
|
175
|
+
|
176
|
+
When releasing new versions, the following projects may need to be updated:
|
177
|
+
|
178
|
+
(no current downstream dependents)
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
BSD-3-clause License
|
2
|
+
|
3
|
+
Copyright (c) 2013-2014, Rapid7, Inc.
|
4
|
+
All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without modification,
|
7
|
+
are permitted provided that the following conditions are met:
|
8
|
+
.
|
9
|
+
* Redistributions of source code must retain the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer.
|
11
|
+
.
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
14
|
+
and/or other materials provided with the distribution.
|
15
|
+
.
|
16
|
+
* Neither the name of Rapid7, Inc. nor the names of its contributors
|
17
|
+
may be used to endorse or promote products derived from this software
|
18
|
+
without specific prior written permission.
|
19
|
+
.
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
24
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
25
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
26
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
27
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
# Metasploit::Yard [](https://travis-ci.org/rapid7/metasploit-yard)[](https://codeclimate.com/github/rapid7/metasploit-yard)[](https://codeclimate.com/github/rapid7/metasploit-yard)[](https://coveralls.io/r/rapid7/metasploit-yard)[](https://gemnasium.com/rapid7/metasploit-yard)[](http://badge.fury.io/rb/metasploit-yard)[](http://inch-ci.org/github/rapid7/metasploit-yard)[](https://www.pullreview.com/github/rapid7/metasploit-yard/reviews/master)
|
2
|
+
|
3
|
+
`metasploit-yard` holds the YARD rake task, in [`lib/tasks/yard.rake`](lib/tasks.yard.rake) used across all
|
4
|
+
`metasploit-*` projects. The rake task is defined here to prevent code duplication and task redefinitions in a gem's
|
5
|
+
dependencies leading to duplicate task actions, which led to yard docs being generated up to 6 times in some projects.
|
6
|
+
|
7
|
+
## Versioning
|
8
|
+
|
9
|
+
`Metasploit::Yard` is versioned using [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html). Each branch
|
10
|
+
should set `Metasploit::Yard::Version::PRERELEASE` to the branch name, while master should have no `PRERELEASE`
|
11
|
+
and the `PRERELEASE` section of `Metasploit::Yard::VERSION` does not exist.
|
12
|
+
|
13
|
+
## Documentation
|
14
|
+
|
15
|
+
`Metasploit::Yard` is documented using YARD. In fact, it uses the same rake task as it exports for other gems to use.
|
16
|
+
|
17
|
+
### Generate
|
18
|
+
|
19
|
+
rake yard
|
20
|
+
|
21
|
+
### Reading
|
22
|
+
|
23
|
+
open doc/frames.html
|
24
|
+
|
25
|
+
## Installation
|
26
|
+
|
27
|
+
### Project with only a Gemfile
|
28
|
+
|
29
|
+
Add this line to your application's `Gemfile`:
|
30
|
+
|
31
|
+
gem 'metasploit-yard', group: :development
|
32
|
+
|
33
|
+
And then execute:
|
34
|
+
|
35
|
+
$ bundle
|
36
|
+
|
37
|
+
### Project with a gemspec
|
38
|
+
|
39
|
+
Add this line to your gem's gemspec:
|
40
|
+
|
41
|
+
spec.add_development_dependency 'metasploit-yard'
|
42
|
+
|
43
|
+
And then execute:
|
44
|
+
|
45
|
+
$ bundle
|
46
|
+
|
47
|
+
### Otherwise
|
48
|
+
|
49
|
+
Or install it yourself as:
|
50
|
+
|
51
|
+
$ gem install metasploit-yard
|
52
|
+
|
53
|
+
## Setup
|
54
|
+
|
55
|
+
### In a Rails::Application
|
56
|
+
|
57
|
+
`metasploit-yard` has a `Rails::Railtie`, [`Metasploit::Yard::Railtie`](lib/metasploit/yard/railtie) that will
|
58
|
+
automatically be loaded if `Rails` is defined when `metasploit/yard` is required. `Metasploit::Yard::Railtie` will
|
59
|
+
automatically load [`yard.rake`](lib/tasks/yard.rake) for your Rails project.
|
60
|
+
|
61
|
+
### In a Rails::Engine or non-Rails gem
|
62
|
+
|
63
|
+
Add the following to your `Rakefile` to load `yard.rake` from `metasploit-yard`
|
64
|
+
|
65
|
+
# Use find_all_by_name instead of find_by_name as find_all_by_name will return pre-release versions
|
66
|
+
gem_specification = Gem::Specification.find_all_by_name('metasploit-yard').first
|
67
|
+
|
68
|
+
Dir[File.join(gem_specification.gem_dir, 'lib', 'tasks', '**', '*.rake')].each do |rake|
|
69
|
+
load rake
|
70
|
+
end
|
71
|
+
|
72
|
+
## Usage
|
73
|
+
|
74
|
+
$ rake yard
|
75
|
+
|
76
|
+
### CI Integration
|
77
|
+
|
78
|
+
`rake yard` will automatically call `rake yard:stats`. `rake yard:stats` will exit with status `0` only if there are
|
79
|
+
no undocumented objects. If there are undocumented objects, then `rake yard:stats` will exist with status `1`. If
|
80
|
+
you want to lower the threshold of undocumented objects that are allowed from `100.0` percentage, set the value in
|
81
|
+
`config/yard-stats-threshold` as a float.
|
82
|
+
|
83
|
+
By adding `rake yard:stats` to the tasks run by your CI server, you can have your build fail if documentation slips
|
84
|
+
below the threshold.
|
85
|
+
|
86
|
+
## Contributing
|
87
|
+
|
88
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md)
|
89
|
+
|
90
|
+
## Testing
|
91
|
+
|
92
|
+
`Metasploit::Yard` is tested using [RSpec](https://github.com/rspec/rspec)
|
93
|
+
|
94
|
+
### Dependencies
|
95
|
+
|
96
|
+
Remove your `Gemfile.lock` so you test with the latest compatible dependencies as will be done on
|
97
|
+
[travis-ci](https://travis-ci.org/rapid7/metasploit-yard)
|
98
|
+
|
99
|
+
rm Gemfile.lock
|
100
|
+
bundle install
|
101
|
+
|
102
|
+
### Database Setup
|
103
|
+
|
104
|
+
To run the specs, access to the database is required, so setup the `database.yml`, create the database, and run the
|
105
|
+
migrations:
|
106
|
+
|
107
|
+
cp spec/dummy/config/database.yml.example spec/dummy/config/database.yml
|
108
|
+
# fill in passwords
|
109
|
+
edit spec/dummy/config/database.yml
|
110
|
+
rake db:create db:migrate
|
111
|
+
|
112
|
+
### Running
|
113
|
+
|
114
|
+
rake spec
|