dradis-plugins 3.0.0.pre → 3.0.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
- data/lib/dradis/plugins.rb +6 -10
- data/lib/dradis/plugins/content_service.rb +11 -3
- data/lib/dradis/plugins/export.rb +1 -0
- data/lib/dradis/plugins/export/base.rb +27 -0
- data/lib/dradis/plugins/gem_version.rb +1 -1
- data/lib/dradis/plugins/templates.rb +41 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad5a0f1011a150397c1378acfe17ae79dfcc7118
|
4
|
+
data.tar.gz: 5a9b942df578368054a859030a42ab5e752d2369
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c030f8c2e6a87f50a053100cf4f11343ff88958a719b7c81cabc8c8ec907cbb627df25a2b6c6aa890d1137fe27eb1c1787b1002425d24a0a71bd3efee83064ec
|
7
|
+
data.tar.gz: 58508d65a5d4cdd27c1bfd6263929533627569355f3a1185e28503e782f0ac3cd640d8e1e76f30f86047f7c3bc07feb9a22ccda8c3e9584e3ad87f00e87e7cdf
|
data/lib/dradis/plugins.rb
CHANGED
@@ -4,9 +4,12 @@ require 'dradis/plugins/version'
|
|
4
4
|
require 'dradis/plugins/content_service'
|
5
5
|
require 'dradis/plugins/template_service'
|
6
6
|
|
7
|
+
require 'dradis/plugins/export'
|
7
8
|
require 'dradis/plugins/import'
|
8
9
|
require 'dradis/plugins/upload'
|
9
10
|
|
11
|
+
require 'dradis/plugins/templates'
|
12
|
+
|
10
13
|
module Dradis
|
11
14
|
module Plugins
|
12
15
|
module Base
|
@@ -19,19 +22,12 @@ module Dradis
|
|
19
22
|
@name = 'Use plugin_info(args) with :name to provide a name for this plugin.'
|
20
23
|
Plugins::register(self)
|
21
24
|
end
|
25
|
+
|
26
|
+
# Extend the engine with other functionality
|
27
|
+
base.send :include, Dradis::Plugins::Templates
|
22
28
|
end
|
23
29
|
|
24
30
|
module ClassMethods
|
25
|
-
# def options(key)
|
26
|
-
# @options[key]
|
27
|
-
# end
|
28
|
-
#
|
29
|
-
# def plugin_info(args={})
|
30
|
-
# features = args.delete(:provides)
|
31
|
-
# provides(features)
|
32
|
-
# @options = args
|
33
|
-
# end
|
34
|
-
|
35
31
|
def description(new_description)
|
36
32
|
@description = new_description
|
37
33
|
end
|
@@ -25,10 +25,18 @@ module Dradis
|
|
25
25
|
|
26
26
|
def create_node(args={})
|
27
27
|
label = args[:label] || "create_node() invoked by #{plugin} without a :label parameter"
|
28
|
-
type_id = args[:type_id] || default_node_type
|
29
28
|
parent = args[:parent] || default_parent_node
|
29
|
+
type_id = begin
|
30
|
+
tmp_type = args[:type].to_s.upcase
|
31
|
+
class_for(:node)::Types::const_defined?(tmp_type) ? "#{class_for(:node)::Types}::#{tmp_type}".constantize : default_node_type
|
32
|
+
end
|
30
33
|
|
31
|
-
|
34
|
+
# FIXME: how ugly is this?
|
35
|
+
if Rails::VERSION::MAJOR == 3
|
36
|
+
parent.children.find_or_create_by_label_and_type_id(label, type_id)
|
37
|
+
else
|
38
|
+
parent.children.find_or_create_by(label: label, type_id: type_id)
|
39
|
+
end
|
32
40
|
end
|
33
41
|
|
34
42
|
def create_note(args={})
|
@@ -82,7 +90,7 @@ module Dradis
|
|
82
90
|
end
|
83
91
|
|
84
92
|
def default_parent_node
|
85
|
-
@default_parent_node ||= class_for(:node).
|
93
|
+
@default_parent_node ||= class_for(:node).find_or_create_by(label: 'plugin.output')
|
86
94
|
end
|
87
95
|
|
88
96
|
def issuelib
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'dradis/plugins/export/base'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This module contains basic Export plugin functions.
|
2
|
+
#
|
3
|
+
|
4
|
+
module Dradis
|
5
|
+
module Plugins
|
6
|
+
module Export
|
7
|
+
class Base
|
8
|
+
attr_accessor :logger
|
9
|
+
|
10
|
+
def initialize(args={})
|
11
|
+
@logger = args.fetch(:logger, Rails.logger)
|
12
|
+
|
13
|
+
post_initialize(args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def export(args={})
|
17
|
+
raise "The export() method is not implemented in this plugin [#{self.class.name}]."
|
18
|
+
end
|
19
|
+
|
20
|
+
# This method can be overwriten by plugins to do initialization tasks.
|
21
|
+
def post_initialize(args={})
|
22
|
+
end
|
23
|
+
end # Base
|
24
|
+
|
25
|
+
end # Export
|
26
|
+
end # Plugins
|
27
|
+
end # Core
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Dradis
|
2
|
+
module Plugins
|
3
|
+
module Templates
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
|
7
|
+
base.class_eval do
|
8
|
+
# Keep track of any templates the plugin defines
|
9
|
+
paths['dradis/templates'] = 'templates'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module ClassMethods
|
14
|
+
def copy_templates(args={})
|
15
|
+
destination = args[:to]
|
16
|
+
|
17
|
+
raise ArgumentError.new(':copy_templates called without a :to parameter') unless destination
|
18
|
+
FileUtils.mkdir_p(destination) if plugin_templates.any?
|
19
|
+
|
20
|
+
plugin_templates.each do |template|
|
21
|
+
destination_file = File.join(destination, File.basename(template))
|
22
|
+
next if File.exist?(destination_file)
|
23
|
+
|
24
|
+
Rails.logger.info{ "Updating templates for #{plugin_name} plugin. Destination: #{destination}" }
|
25
|
+
FileUtils.cp(template, destination_file)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def plugin_templates(args={})
|
30
|
+
@templates ||= begin
|
31
|
+
if paths['dradis/templates'].existent.any?
|
32
|
+
Dir["%s/*" % paths['dradis/templates'].existent]
|
33
|
+
else
|
34
|
+
[]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dradis-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,12 +56,15 @@ files:
|
|
56
56
|
- lib/dradis/plugins.rb
|
57
57
|
- lib/dradis/plugins/content_service.rb
|
58
58
|
- lib/dradis/plugins/engine.rb
|
59
|
+
- lib/dradis/plugins/export.rb
|
60
|
+
- lib/dradis/plugins/export/base.rb
|
59
61
|
- lib/dradis/plugins/gem_version.rb
|
60
62
|
- lib/dradis/plugins/import.rb
|
61
63
|
- lib/dradis/plugins/import/filters.rb
|
62
64
|
- lib/dradis/plugins/import/filters/base.rb
|
63
65
|
- lib/dradis/plugins/import/result.rb
|
64
66
|
- lib/dradis/plugins/template_service.rb
|
67
|
+
- lib/dradis/plugins/templates.rb
|
65
68
|
- lib/dradis/plugins/upload.rb
|
66
69
|
- lib/dradis/plugins/upload/base.rb
|
67
70
|
- lib/dradis/plugins/upload/field_processor.rb
|
@@ -81,9 +84,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
84
|
version: '0'
|
82
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
86
|
requirements:
|
84
|
-
- - '
|
87
|
+
- - '>='
|
85
88
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
89
|
+
version: '0'
|
87
90
|
requirements: []
|
88
91
|
rubyforge_project:
|
89
92
|
rubygems_version: 2.3.0
|