metasploit-concern 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +13 -1
- data/lib/metasploit/concern/engine.rb +33 -0
- data/lib/metasploit/concern/version.rb +2 -2
- metadata +7 -8
- data/config/initializers/load_concerns.rb +0 -23
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDE0ZDAxOTA3YjBlNGUwNzk0MTZhMGZkZjhjMjg1MTY0YTE2NjU5YQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OWNiOWExZWJkYWZlYzU2ZWZkMTc2OTZkN2VkYjM4N2FmZjU1NDNhNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDVhZDc1YTY5OTYwNTY3M2QyZGZmMDY1OGFhN2MzMDZiNDc3YjhkY2UwNmQw
|
10
|
+
NjllZmFjOGE0YjNjZDU0ZDdhZTg2NTM1OTQzNGMxN2UyNGI5M2ZiMzc5ZTQx
|
11
|
+
MDc1ZmQ5YmU4YTZlM2M4OThlZDVjOTZmOWExMjI5NDhjMDNjZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YzRmNGZhZTc5YTI3NGMwNTIyMDUxNGIyZWFmZGUyZWZkZjcxODk5NDIwN2Q4
|
14
|
+
NDU2YzllZGUxMmVkMGI3Y2M1NDlhN2JkMDZlNWYxYTAzM2E3Yjc1NDA5Yjcy
|
15
|
+
MjNmZDQyM2Y5NGEyOTJhMDVjMmYxNmFiOTFmMDRiMzg3M2ZiOTg=
|
data/README.md
CHANGED
@@ -118,4 +118,16 @@ Using `ActiveSupport::Concern` allow you to add new associations and or validati
|
|
118
118
|
dependent: :destroy,
|
119
119
|
inverse_of :gem_namespace_gem_class
|
120
120
|
end
|
121
|
-
end
|
121
|
+
end
|
122
|
+
|
123
|
+
### initializers
|
124
|
+
|
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`:
|
128
|
+
|
129
|
+
initializer 'application_or_engine_namespace.depends_on_concerns', after: 'metasploit_concern.load_concerns' do
|
130
|
+
if GemNamespace::GemClass.primary.widgets.empty?
|
131
|
+
logger.info('No Widgets on the primary GemClass!')
|
132
|
+
end
|
133
|
+
end
|
@@ -6,6 +6,10 @@ else
|
|
6
6
|
module Metasploit
|
7
7
|
module Concern
|
8
8
|
class Engine < ::Rails::Engine
|
9
|
+
#
|
10
|
+
# `config`
|
11
|
+
#
|
12
|
+
|
9
13
|
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
10
14
|
config.generators do |g|
|
11
15
|
g.assets false
|
@@ -13,6 +17,35 @@ else
|
|
13
17
|
g.test_framework :rspec, fixture: false
|
14
18
|
end
|
15
19
|
|
20
|
+
#
|
21
|
+
# `initializer`s
|
22
|
+
#
|
23
|
+
|
24
|
+
initializer 'metasploit_concern.load_concerns' do
|
25
|
+
application = Rails.application
|
26
|
+
engines = application.railties.engines
|
27
|
+
|
28
|
+
# application is an engine
|
29
|
+
engines = [application, *engines]
|
30
|
+
|
31
|
+
engines.each do |engine|
|
32
|
+
concerns_path = engine.paths['app/concerns']
|
33
|
+
|
34
|
+
if concerns_path
|
35
|
+
concerns_directories = concerns_path.existent_directories
|
36
|
+
else
|
37
|
+
# app/concerns is not set, so just derive it from root. Cannot derive from app because it will glob app/models too
|
38
|
+
concerns_directories = [engine.root.join('app', 'concerns').to_path]
|
39
|
+
end
|
40
|
+
|
41
|
+
concerns_directories.each do |concerns_directory|
|
42
|
+
concerns_pathname = Pathname.new(concerns_directory)
|
43
|
+
loader = Metasploit::Concern::Loader.new(root: concerns_pathname)
|
44
|
+
loader.register
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
16
49
|
isolate_namespace Metasploit::Concern
|
17
50
|
end
|
18
51
|
end
|
@@ -5,9 +5,9 @@ module Metasploit
|
|
5
5
|
# The major version number.
|
6
6
|
MAJOR = 0
|
7
7
|
# The minor version number, scoped to the {MAJOR} version number.
|
8
|
-
MINOR =
|
8
|
+
MINOR = 1
|
9
9
|
# The patch number, scoped to the {MINOR} version number.
|
10
|
-
PATCH =
|
10
|
+
PATCH = 0
|
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.0
|
4
|
+
version: 0.1.0
|
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-05
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -39,15 +39,14 @@ executables: []
|
|
39
39
|
extensions: []
|
40
40
|
extra_rdoc_files: []
|
41
41
|
files:
|
42
|
-
- LICENSE
|
43
|
-
- README.md
|
44
|
-
- Rakefile
|
45
42
|
- app/models/metasploit/concern/loader.rb
|
46
|
-
- config/initializers/load_concerns.rb
|
47
|
-
- lib/metasploit/concern.rb
|
48
43
|
- lib/metasploit/concern/engine.rb
|
49
44
|
- lib/metasploit/concern/version.rb
|
45
|
+
- lib/metasploit/concern.rb
|
50
46
|
- lib/tasks/yard.rake
|
47
|
+
- LICENSE
|
48
|
+
- Rakefile
|
49
|
+
- README.md
|
51
50
|
- spec/support/shared/examples/metasploit/concern/run.rb
|
52
51
|
homepage: https://github.com/rapid7/metasploit-concern
|
53
52
|
licenses:
|
@@ -69,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
68
|
version: '0'
|
70
69
|
requirements: []
|
71
70
|
rubyforge_project:
|
72
|
-
rubygems_version: 2.
|
71
|
+
rubygems_version: 2.1.11
|
73
72
|
signing_key:
|
74
73
|
specification_version: 4
|
75
74
|
summary: Automatically include Modules from app/concerns
|
@@ -1,23 +0,0 @@
|
|
1
|
-
application = Rails.application
|
2
|
-
engines = application.railties.engines
|
3
|
-
|
4
|
-
# application is an engine
|
5
|
-
engines = [application, *engines]
|
6
|
-
|
7
|
-
engines.each do |engine|
|
8
|
-
concerns_path = engine.paths['app/concerns']
|
9
|
-
|
10
|
-
if concerns_path
|
11
|
-
concerns_directories = concerns_path.existent_directories
|
12
|
-
else
|
13
|
-
# app/concerns is not set, so just derive it from root. Cannot derive from app because it will glob app/models too
|
14
|
-
concerns_directories = [engine.root.join('app', 'concerns').to_path]
|
15
|
-
end
|
16
|
-
|
17
|
-
concerns_directories.each do |concerns_directory|
|
18
|
-
concerns_pathname = Pathname.new(concerns_directory)
|
19
|
-
loader = Metasploit::Concern::Loader.new(root: concerns_pathname)
|
20
|
-
loader.register
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|