metasploit-concern 0.1.0 → 0.1.1
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 +8 -8
- data/CONTRIBUTING.md +157 -0
- data/README.md +13 -22
- data/lib/metasploit/concern/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OGI4NmEzOGFiOTFlM2JhNDllYTcxNWJiZTRjMzkyYmNhMWMxOGYyOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTM0NTJiZTVjMGMwZTIwZWYyNmQzNGEwMTQ5MTIyOTAyMGQ4ZjAwOQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDU4NTJlYmQ3YjEyYmJjNWYyYzFjNDA1ZmZiZWM0MmNjM2VhMzJkNmY1ODdm
|
10
|
+
MjkxZmEzY2M0YmRlOTljZDc3NmRlZWZhMTRhNzA5YjRkNTYwYjAxMDA4M2I0
|
11
|
+
MDdmZDA0MjQ2Mzc5MTQ1NTU1NDQ1MGE3OWVmNDAxOWE3OGExZDA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjJmYWJjZmMzN2EzMGEwZjVkMjVlODhmOGM0ZWUwOWZjNjY4MjBiYWY5YmE4
|
14
|
+
NjQ2YzJkM2VkMmUwZGFhOTBhMDU3MGIwMzQ1ZjlhNjRhNWZlMzI1YTI3OWU0
|
15
|
+
MmY5NzYxOGU5MDYyMjQ2MmExNDIwYjFjNmQzMjNmNzFmOGY5NTA=
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
## Forking
|
4
|
+
|
5
|
+
[Fork this repository](https://github.com/rapid7/metasploit-concern/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-concern/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/concern/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-concern/compare/)
|
53
|
+
* Add a Verification Steps comment
|
54
|
+
|
55
|
+
```
|
56
|
+
# Verification Steps
|
57
|
+
|
58
|
+
- [ ] `bundle install`
|
59
|
+
|
60
|
+
## `rake spec`
|
61
|
+
- [ ] `rake spec`
|
62
|
+
- [ ] VERIFY no failures
|
63
|
+
```
|
64
|
+
You should also include at least one scenario to manually check the changes outside of specs.
|
65
|
+
|
66
|
+
* Add a Post-merge Steps comment
|
67
|
+
|
68
|
+
The 'Post-merge Steps' are a reminder to the reviewer of the Pull Request of how to update the [`PRERELEASE`](lib/metasploit/concern/version.rb) so that [version_spec.rb](spec/lib/metasploit/concern/version_spec.rb) passes on the target branch after the merge.
|
69
|
+
|
70
|
+
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.
|
71
|
+
|
72
|
+
When merging to `master`:
|
73
|
+
|
74
|
+
```
|
75
|
+
# Post-merge Steps
|
76
|
+
|
77
|
+
Perform these steps prior to pushing to master or the build will be broke on master.
|
78
|
+
|
79
|
+
## Version
|
80
|
+
- [ ] Edit `lib/metasploit/concern/version.rb`
|
81
|
+
- [ ] Remove `PRERELEASE` and its comment as `PRERELEASE` is not defined on master.
|
82
|
+
|
83
|
+
## Gem build
|
84
|
+
- [ ] gem build *.gemspec
|
85
|
+
- [ ] VERIFY the gem has no '.pre' version suffix.
|
86
|
+
|
87
|
+
## RSpec
|
88
|
+
- [ ] `rake spec`
|
89
|
+
- [ ] VERIFY version examples pass without failures
|
90
|
+
|
91
|
+
## Commit & Push
|
92
|
+
- [ ] `git commit -a`
|
93
|
+
- [ ] `git push origin master`
|
94
|
+
```
|
95
|
+
|
96
|
+
When merging to DESTINATION other than `master`:
|
97
|
+
|
98
|
+
```
|
99
|
+
# Post-merge Steps
|
100
|
+
|
101
|
+
Perform these steps prior to pushing to DESTINATION or the build will be broke on DESTINATION.
|
102
|
+
|
103
|
+
## Version
|
104
|
+
- [ ] Edit `lib/metasploit/concern/version.rb`
|
105
|
+
- [ ] Change `PRERELEASE` from `SOURCE_SUMMARY` to `DESTINATION_SUMMARY` to match the branch (DESTINATION) summary (DESTINATION_SUMMARY)
|
106
|
+
|
107
|
+
## Gem build
|
108
|
+
- [ ] gem build *.gemspec
|
109
|
+
- [ ] VERIFY the prerelease suffix has change on the gem.
|
110
|
+
|
111
|
+
## RSpec
|
112
|
+
- [ ] `rake spec`
|
113
|
+
- [ ] VERIFY version examples pass without failures
|
114
|
+
|
115
|
+
## Commit & Push
|
116
|
+
- [ ] `git commit -a`
|
117
|
+
- [ ] `git push origin DESTINATION`
|
118
|
+
```
|
119
|
+
|
120
|
+
* Add a 'Release Steps' comment
|
121
|
+
|
122
|
+
The 'Release Steps' are a reminder to the reviewer of the Pull Request of how to release the gem.
|
123
|
+
|
124
|
+
```
|
125
|
+
# Release
|
126
|
+
|
127
|
+
Complete these steps on DESTINATION
|
128
|
+
|
129
|
+
## `VERSION`
|
130
|
+
|
131
|
+
### Compatible changes
|
132
|
+
|
133
|
+
If your change are compatible with the previous branch's API, then increment [`PATCH`](lib/metasploit/concern/version.rb).
|
134
|
+
|
135
|
+
### Incompatible changes
|
136
|
+
|
137
|
+
If your changes are incompatible with the previous branch's API, then increment [`MINOR`](lib/metasploit/concern/version.rb) and reset [`PATCH`](lib/metasploit/concern/version.rb) to `0`.
|
138
|
+
|
139
|
+
- [ ] Following the rules for [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html), update [`MINOR`](lib/metasploit/concern/version.rb) and [`PATCH`](lib/metasploit/concern/version.rb) and commit the changes.
|
140
|
+
|
141
|
+
## MRI Ruby
|
142
|
+
- [ ] `rvm use ruby-1.9.3@metasploit-concern`
|
143
|
+
- [ ] `rm Gemfile.lock`
|
144
|
+
- [ ] `bundle install`
|
145
|
+
- [ ] `rake release`
|
146
|
+
```
|
147
|
+
|
148
|
+
### Downstream dependencies
|
149
|
+
|
150
|
+
When releasing new versions, the following projects may need to be updated:
|
151
|
+
|
152
|
+
* [metasploit_data_models](https://github.com/rapid7/metasploit_data_models)
|
153
|
+
* [metasploit-credential](https://github.com/rapid7/metasploit-credential)
|
154
|
+
* [metasploit-framework](https://github.com/rapid7/metasploit-framework)
|
155
|
+
* [metasploit-pro-ui](https://github.com/rapid7/pro/tree/master/ui)
|
156
|
+
* [metasploit-pro-engine](https://github.com/rapid7/pro/tree/master/engine)
|
157
|
+
* [firewall_egress](https://github.com/rapid7/pro/tree/master/metamodules/firewall_egress)
|
data/README.md
CHANGED
@@ -1,14 +1,10 @@
|
|
1
1
|
# Metasploit::Concern [](https://travis-ci.org/rapid7/metasploit-concern)[](https://codeclimate.com/github/rapid7/metasploit-concern)[](https://coveralls.io/r/rapid7/metasploit-concern)[](https://gemnasium.com/rapid7/metasploit-concern)[](http://badge.fury.io/rb/metasploit-concern)
|
2
2
|
|
3
|
-
`Metasploit::Concern` allows you to define concerns in `app/concerns` that will automatically be included in matching
|
4
|
-
classes. It can be used to automate adding new associations to `ActiveRecord::Base` models from gems and
|
5
|
-
`Rails::Engine`s.
|
3
|
+
`Metasploit::Concern` allows you to define concerns in `app/concerns` that will automatically be included in matching classes. It can be used to automate adding new associations to `ActiveRecord::Base` models from gems and `Rails::Engine`s.
|
6
4
|
|
7
5
|
## Versioning
|
8
6
|
|
9
|
-
`Metasploit::Concern` is versioned using [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html). Each branch
|
10
|
-
should set `Metasploit::Concern::Version::PRERELEASE` to the branch name, while master should have no `PRERELEASE`
|
11
|
-
and the `PRERELEASE` section of `Metasploit::Concern::VERSION` does not exist.
|
7
|
+
`Metasploit::Concern` is versioned using [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html). Each branch should set `Metasploit::Concern::Version::PRERELEASE` to the branch SUMMARY, while master should have no `PRERELEASE` and the `PRERELEASE` section of `Metasploit::Concern::VERSION` does not exist.
|
12
8
|
|
13
9
|
## Installation
|
14
10
|
|
@@ -26,12 +22,9 @@ Or install it yourself as:
|
|
26
22
|
|
27
23
|
## Supporting concerns
|
28
24
|
|
29
|
-
`Metasploit::Concern` support is a cooperative effort that involves the classes from the gem being setup
|
30
|
-
to allow downstream dependents to inject concerns.
|
25
|
+
`Metasploit::Concern` support is a cooperative effort that involves the classes from the gem being setup to allow downstream dependents to inject concerns.
|
31
26
|
|
32
|
-
In order for `Metasploit::Concern` to load concerns for `app/concerns`, the class on which `Module#include` will be
|
33
|
-
called must support `ActiveSupport` load hooks with a specific name format. You can run the appropriate load hooks
|
34
|
-
at the bottom of the class body:
|
27
|
+
In order for `Metasploit::Concern` to load concerns for `app/concerns`, the class on which `Module#include` will be called must support `ActiveSupport` load hooks with a specific name format. You can run the appropriate load hooks at the bottom of the class body:
|
35
28
|
|
36
29
|
class GemNamespace::GemClass < ActiveRecord::Base
|
37
30
|
# class body
|
@@ -49,8 +42,7 @@ Include the shared examples from `Metasploit::Concern` in your `spec_helper.rb`:
|
|
49
42
|
end
|
50
43
|
|
51
44
|
|
52
|
-
To verify that your classes call `Metasploit::Concern.run` correctly, you can use the `'Metasploit::Concern.run'` shared
|
53
|
-
example:
|
45
|
+
To verify that your classes call `Metasploit::Concern.run` correctly, you can use the `'Metasploit::Concern.run'` shared example:
|
54
46
|
|
55
47
|
# spec/app/models/gem_namespace/gem_class_spec.rb
|
56
48
|
describe GemNamespace::GemClass do
|
@@ -59,8 +51,7 @@ example:
|
|
59
51
|
|
60
52
|
## Using concerns
|
61
53
|
|
62
|
-
Concerns are added in downstream dependents of gems that support concerns. These dependents can be a `Rails::Engines`
|
63
|
-
or full `Rails::Application`.
|
54
|
+
Concerns are added in downstream dependents of gems that support concerns. These dependents can be a `Rails::Engines` or full `Rails::Application`.
|
64
55
|
|
65
56
|
### app/concerns
|
66
57
|
|
@@ -86,8 +77,7 @@ Add this line to your engine's class body:
|
|
86
77
|
|
87
78
|
### Concerns
|
88
79
|
|
89
|
-
Define concerns for class under `app/concerns` by creating files under directories named after the namespaced class
|
90
|
-
names:
|
80
|
+
Define concerns for class under `app/concerns` by creating files under directories named after the namespaced class names:
|
91
81
|
|
92
82
|
$ mkdir -p app/concerns/gem_namespace/gem_class
|
93
83
|
$ edit app/concerns/gem_namespace/gem_class/my_concern.rb
|
@@ -98,8 +88,7 @@ Inside each concern, make sure the `module` name matches file name:
|
|
98
88
|
...
|
99
89
|
end
|
100
90
|
|
101
|
-
Each concern is included using `Module#include` which means that the `included` method on each concern will be called.
|
102
|
-
Using `ActiveSupport::Concern` allow you to add new associations and or validations to `ActiveRecord::Base` subclass:
|
91
|
+
Each concern is included using `Module#include` which means that the `included` method on each concern will be called. Using `ActiveSupport::Concern` allow you to add new associations and or validations to `ActiveRecord::Base` subclass:
|
103
92
|
|
104
93
|
module GemNamespace::GemClass::MyConcern
|
105
94
|
extend ActiveSupport::Concern
|
@@ -122,12 +111,14 @@ Using `ActiveSupport::Concern` allow you to add new associations and or validati
|
|
122
111
|
|
123
112
|
### initializers
|
124
113
|
|
125
|
-
`Metasploit::Concern::Engine` defines the `'metasploit_concern.load_concerns'` initializer, which sets up
|
126
|
-
`ActiveSupport.on_load` callbacks. If you depend on a feature from a concern in your initializers, it is best to have
|
127
|
-
the initializer declare that it needs to be run after `'metasploit_concern.load_concerns`:
|
114
|
+
`Metasploit::Concern::Engine` defines the `'metasploit_concern.load_concerns'` initializer, which sets up `ActiveSupport.on_load` callbacks. If you depend on a feature from a concern in your initializers, it is best to have the initializer declare that it needs to be run after `'metasploit_concern.load_concerns`:
|
128
115
|
|
129
116
|
initializer 'application_or_engine_namespace.depends_on_concerns', after: 'metasploit_concern.load_concerns' do
|
130
117
|
if GemNamespace::GemClass.primary.widgets.empty?
|
131
118
|
logger.info('No Widgets on the primary GemClass!')
|
132
119
|
end
|
133
120
|
end
|
121
|
+
|
122
|
+
## Contributing
|
123
|
+
|
124
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md)
|
@@ -7,7 +7,7 @@ module Metasploit
|
|
7
7
|
# The minor version number, scoped to the {MAJOR} version number.
|
8
8
|
MINOR = 1
|
9
9
|
# The patch number, scoped to the {MINOR} version number.
|
10
|
-
PATCH =
|
10
|
+
PATCH = 1
|
11
11
|
|
12
12
|
# The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the `PRERELEASE` in the
|
13
13
|
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit-concern
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Imhoff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -39,14 +39,15 @@ executables: []
|
|
39
39
|
extensions: []
|
40
40
|
extra_rdoc_files: []
|
41
41
|
files:
|
42
|
+
- CONTRIBUTING.md
|
43
|
+
- LICENSE
|
44
|
+
- README.md
|
45
|
+
- Rakefile
|
42
46
|
- app/models/metasploit/concern/loader.rb
|
47
|
+
- lib/metasploit/concern.rb
|
43
48
|
- lib/metasploit/concern/engine.rb
|
44
49
|
- lib/metasploit/concern/version.rb
|
45
|
-
- lib/metasploit/concern.rb
|
46
50
|
- lib/tasks/yard.rake
|
47
|
-
- LICENSE
|
48
|
-
- Rakefile
|
49
|
-
- README.md
|
50
51
|
- spec/support/shared/examples/metasploit/concern/run.rb
|
51
52
|
homepage: https://github.com/rapid7/metasploit-concern
|
52
53
|
licenses:
|
@@ -68,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
69
|
version: '0'
|
69
70
|
requirements: []
|
70
71
|
rubyforge_project:
|
71
|
-
rubygems_version: 2.
|
72
|
+
rubygems_version: 2.2.2
|
72
73
|
signing_key:
|
73
74
|
specification_version: 4
|
74
75
|
summary: Automatically include Modules from app/concerns
|