dradis-html_export 3.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0a4b132909f61079e38b9bf5ce83fe9ed6aa8ed7
4
+ data.tar.gz: 01f9645ed98a79fcf73319cae03e173fed9afe02
5
+ SHA512:
6
+ metadata.gz: 91422579d5c34033623fb6354e2601d68e9a714ca717892d18a9f24a058bce767787dde8aba9538ea0ddef610ea98c7b1a889ded758922bd888ff92951784599
7
+ data.tar.gz: be3c3ac282cfff1459bedb06fd6e0b6ad610da695528f9e8d44f916cd0c20bddcc06906070ef543646502cea002847dabeb4cca64c211c34fbdcf406bda9e7d8
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ spec/dummy
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,11 @@
1
+ rvm:
2
+ - 1.9.3
3
+ notifications:
4
+ irc:
5
+ on_success: change
6
+ on_failure: always
7
+ channels:
8
+ - "irc.freenode.org#dradis"
9
+
10
+ bundler_args: --path vendor/bundle
11
+ script: "bundle exec rake spec"
@@ -0,0 +1,3 @@
1
+ # Plugin contribution guidelines
2
+
3
+ See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradisframework/blob/master/CONTRIBUTING.md)
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in dradis-html_export.gemspec
4
+ gemspec
5
+
6
+ gem 'dradis_core', path: '../d3arsenal/engines/core'
@@ -0,0 +1,23 @@
1
+ # HTML export plugin for the Dradis Framework
2
+
3
+ [![Build Status](https://secure.travis-ci.org/dradis/dradis-html_export.png?branch=master)](http://travis-ci.org/dradis/dradis-html_export)
4
+
5
+
6
+ This plugin generates an HTML report for the notes in your [Dradis Framework](https://github.com/dradis/dradisframework) repository.
7
+
8
+ The plugin requires Dradis 3.0 or higher.
9
+
10
+
11
+ ## More information
12
+
13
+ See the Dradis Framework's [README.md](https://github.com/dradis/dradisframework/blob/master/README.md)
14
+
15
+
16
+ ## Contributing
17
+
18
+ See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradisframework/blob/master/CONTRIBUTING.md)
19
+
20
+
21
+ ## License
22
+
23
+ Dradis Framework and all its components are released under [GNU General Public License version 2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,27 @@
1
+ module Dradis
2
+ module Plugins
3
+ module HtmlExport
4
+ class BaseController < Dradis::Plugins::Export::BaseController
5
+ # This method cycles throw the notes in the reporting category and creates
6
+ # a simple HTML report with them.
7
+ #
8
+ # It uses the template at: ./vendor/plugins/html_export/template.html.erb
9
+ def index
10
+
11
+ # these come from Export#create
12
+ export_manager_hash = session[:export_manager].with_indifferent_access
13
+ content_service_class = export_manager_hash[:content_service].constantize
14
+
15
+ exporter = Dradis::Plugins::HtmlExport::Exporter.new(
16
+ content_service: content_service_class.new(plugin: Dradis::Plugins::HtmlExport)
17
+ )
18
+
19
+ doc = exporter.export(export_manager_hash)
20
+
21
+ render type: 'text/html', text: doc
22
+ end
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ Dradis::Plugins::HtmlExport::Engine.routes.draw do
2
+ root to: 'base#index'
3
+ end
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/dradis/plugins/html_export/version', __FILE__)
3
+ version = Dradis::Plugins::HtmlExport::version
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.platform = Gem::Platform::RUBY
7
+ spec.name = "dradis-html_export"
8
+ spec.version = version
9
+ spec.required_ruby_version = '>= 1.9.3'
10
+ spec.license = 'GPL-2'
11
+
12
+ spec.authors = ['Daniel Martin']
13
+ spec.email = ["<etd@nomejortu.com>"]
14
+ spec.description = %q{Export to HTML plugin for the Dradis Framework}
15
+ spec.summary = %q{Dradis HTML export plugin}
16
+ spec.homepage = 'http://dradisframework.org'
17
+
18
+ spec.files = `git ls-files`.split($\)
19
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ # gem.add_dependency 'dradis_core', version
24
+ spec.add_dependency 'dradis-plugins', '~> 3.3'
25
+
26
+ # Note markup
27
+ spec.add_dependency 'rails_autolink', '~> 1.1'
28
+ spec.add_dependency 'RedCloth', '4.2.9'
29
+
30
+ # gem.add_development_dependency 'capybara', '~> 1.1.3'
31
+ # gem.add_development_dependency 'database_cleaner'
32
+ # gem.add_development_dependency 'factory_girl_rails'
33
+ # gem.add_development_dependency 'rspec-rails', '~> 2.11.0'
34
+ # gem.add_development_dependency 'sqlite3'
35
+ end
@@ -0,0 +1,9 @@
1
+ # Hook to the framework base clases
2
+ require 'dradis-plugins'
3
+
4
+ # Load supporting classes
5
+ require 'rails_autolink'
6
+ require 'redcloth'
7
+
8
+ # Load this add-on's engine
9
+ require 'dradis/plugins/html_export'
@@ -0,0 +1,10 @@
1
+ require 'dradis/plugins/html_export/engine'
2
+ require 'dradis/plugins/html_export/exporter'
3
+ require 'dradis/plugins/html_export/version'
4
+
5
+ module Dradis
6
+ module Plugins
7
+ module HtmlExport
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,43 @@
1
+ module Dradis
2
+ module Plugins
3
+ module HtmlExport
4
+ class Engine < ::Rails::Engine
5
+
6
+ # Standard Rails Engine stuff
7
+ isolate_namespace Dradis::Plugins::HtmlExport
8
+ engine_name 'dradis_html_export'
9
+
10
+ # use rspec for tests
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
15
+ # Connect to the Framework
16
+ include Dradis::Plugins::Base
17
+
18
+ # plugin_name 'HTML export'
19
+ provides :export
20
+ description 'Generate advanced HTML reports'
21
+
22
+
23
+ initializer 'dradis-html_export.mount_engine' do
24
+ Rails.application.routes.append do
25
+ mount Dradis::Plugins::HtmlExport::Engine => '/export/html'
26
+ end
27
+ end
28
+
29
+ # # TODO: could we use this instead?
30
+ # # https://github.com/spree/spree_analytics/blob/079949fd0e6d9ec87eefd8e3b9c70b5aa3bf25d3/lib/spree_analytics/engine.rb
31
+ # # Configuration
32
+ # # mattr_accessor :app_id, :site_id, :token, :api_url, :data_url
33
+ # # self.template = ''
34
+ # class Configuration < Dradis::Core::Configurator
35
+ # configure :namespace => 'htmlexport'
36
+ # setting :category, :default => 'HtmlExport ready'
37
+ # # setting :template, :default => Rails.root.join( 'vendor', 'plugins', 'html_export', 'template.html.erb' )
38
+ # setting :template, :default => '/Users/etd/dradis/git/dradis-html_export/template.html.erb'
39
+ # end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,72 @@
1
+ module Dradis
2
+ module Plugins
3
+ module HtmlExport
4
+
5
+ class Exporter < Dradis::Plugins::Export::Base
6
+ # Add auto_link support to the ERB processor (see rails_autolink)
7
+ include ::ActionView::Helpers::TextHelper
8
+ # For auto_link feature (requires #mail_to)
9
+ include ::ActionView::Helpers::UrlHelper
10
+
11
+ def export(args = {})
12
+ template_path = args.fetch(:template)
13
+ template_properties = ::ReportTemplateProperties.find_by_template_file(File.basename(template_path)) rescue nil
14
+ project = args.key?(:project_id) ? Project.find_by_id(args[:project_id]) : nil
15
+
16
+ # Build title
17
+ title = if Dradis.constants.include?(:Pro)
18
+ "Dradis Professional Edition v#{Dradis::Pro.version}"
19
+ else
20
+ "Dradis Community Edition v#{Dradis::CE.version}"
21
+ end
22
+ logger.debug{ "Report title: #{title}"}
23
+
24
+ # Prepare notes
25
+ notes = content_service.all_notes
26
+ logger.debug{ "Found #{notes.count} notes assigned to the reporting category."}
27
+
28
+ # Prepare issues
29
+ issues = content_service.all_issues
30
+ if issues
31
+ # Sort our issues based on the ReportTemplateProperties rules.
32
+ if template_properties && template_properties.sort_field
33
+ sort_by = template_properties.sort_field
34
+
35
+ logger.debug{ "Template properties define a sort field: #{sort_by}. Sorting..." }
36
+
37
+ # FIXME: Assume the Field :type is :number, so cast .to_f and sort
38
+ issues.sort! do |a, b|
39
+ b.fields.fetch(sort_by, '0').to_f <=> a.fields.fetch(sort_by, '0').to_f
40
+ end
41
+
42
+ logger.debug{ "Done." }
43
+ end
44
+
45
+ # FIXME: This is an ugly piece of code
46
+ nodes = issues.map(&:evidence).map(&:node).uniq rescue []
47
+
48
+ logger.debug{ "Found #{issues.count} issues affecting #{nodes.count} nodes" }
49
+ else
50
+ logger.warning { "No issue library node found in this project" }
51
+ end
52
+
53
+ # Render template
54
+ erb = ERB.new( File.read(template_path) )
55
+ erb.result( binding )
56
+ end
57
+
58
+ private
59
+ def markup(text)
60
+ return unless text.present?
61
+
62
+ output = text.dup
63
+ Hash[ *text.scan(/#\[(.+?)\]#[\r|\n](.*?)(?=#\[|\z)/m).flatten.collect{ |str| str.strip } ].keys.each do |field|
64
+ output.gsub!(/#\[#{Regexp.escape(field)}\]#[\r|\n]/, "h4. #{field}\n\n")
65
+ end
66
+
67
+ auto_link(RedCloth.new(output, [:filter_html, :no_span_caps]).to_html, sanitize: false ).html_safe
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,19 @@
1
+ module Dradis
2
+ module Plugins
3
+ module HtmlExport
4
+ # Returns the version of the currently loaded Frontend as a <tt>Gem::Version</tt>
5
+ def self.gem_version
6
+ Gem::Version.new VERSION::STRING
7
+ end
8
+
9
+ module VERSION
10
+ MAJOR = 3
11
+ MINOR = 3
12
+ TINY = 2
13
+ PRE = nil
14
+
15
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'gem_version'
2
+
3
+ module Dradis
4
+ module Plugins
5
+ module HtmlExport
6
+ # Returns the version of the currently loaded HtmlExport as a
7
+ # <tt>Gem::Version</tt>.
8
+ def self.version
9
+ gem_version
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,51 @@
1
+ class HtmlExportTasks < Thor
2
+ include Dradis::Plugins::thor_helper_module.to_s.constantize
3
+
4
+ namespace "dradis:plugins:html"
5
+
6
+ desc 'export', 'export the current repository structure as an HTML document'
7
+ method_option :output, required: false, type: :string, desc: "the report file to create (if ends in .html), or directory to create it in"
8
+ method_option :template, required: true, type: :string, desc: "the template file to use. If not provided the value of the 'advanced_word_export:docx' setting will be used."
9
+
10
+ def export
11
+ require 'config/environment'
12
+
13
+ # The options we'll end up passing to the Processor class
14
+ opts = {}
15
+
16
+ STDOUT.sync = true
17
+ logger = Logger.new(STDOUT)
18
+ logger.level = Logger::DEBUG
19
+ opts[:logger] = logger
20
+ content_service = nil
21
+
22
+ report_path = options.output || Rails.root
23
+ unless report_path.to_s =~ /\.html\z/
24
+ date = DateTime.now.strftime("%Y-%m-%d")
25
+ sequence = Dir.glob(File.join(report_path, "dradis-report_#{date}_*.html")).collect { |a| a.match(/_([0-9]+)\.html\z/)[1].to_i }.max || 0
26
+ report_path = File.join(report_path, "dradis-report_#{date}_#{sequence + 1}.html")
27
+ end
28
+
29
+
30
+ if template = options.template
31
+ shell.error("Template file doesn't exist") && exit(1) unless File.exists?(template)
32
+ opts[:template] = template
33
+ end
34
+
35
+ detect_and_set_project_scope
36
+ exporter = Dradis::Plugins::HtmlExport::Exporter.new(
37
+ content_service: Dradis::Plugins::ContentService.new(plugin: Dradis::Plugins::HtmlExport)
38
+ )
39
+
40
+ doc = exporter.export(opts)
41
+
42
+ File.open(report_path, 'w') do |f|
43
+ f << doc
44
+ end
45
+
46
+ logger.info{ "Report file created at:\n\t#{report_path}" }
47
+ logger.close
48
+ end
49
+
50
+
51
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "HTML Export" do
4
+ it "presents the note text in the report layout" do
5
+ Dradis::Core::VERSION::STRING.should eq('3.0.0.beta')
6
+ end
7
+ end
@@ -0,0 +1,39 @@
1
+ # Configure Rails Envinronment
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../dummy/config/environment", __FILE__)
4
+
5
+ require 'rspec/rails'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
10
+
11
+ require 'database_cleaner'
12
+ require 'factory_girl_rails'
13
+
14
+
15
+ RSpec.configure do |config|
16
+
17
+ # Capybara javascript drivers require transactional fixtures set to false,
18
+ # and we just use DatabaseCleaner to cleanup after each test instead.
19
+ # Without transactional fixtures set to false none of the records created to
20
+ # setup a test will be available to the browser, which runs under a seperate
21
+ # server instance.
22
+ config.use_transactional_fixtures = false
23
+
24
+ config.before(:each) do
25
+ if example.metadata[:js]
26
+ DatabaseCleaner.strategy = :truncation
27
+ else
28
+ DatabaseCleaner.strategy = :transaction
29
+ end
30
+ end
31
+
32
+ config.before(:each) do
33
+ DatabaseCleaner.start
34
+ end
35
+
36
+ config.after(:each) do
37
+ DatabaseCleaner.clean
38
+ end
39
+ end
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html>
4
+ <head>
5
+ <title><%= title %></title>
6
+ <style type="text/css">
7
+ html{color:#000;background:#FFF}
8
+ body,div,ul,ol,li,h1,h2,h3{margin:0;padding:0}
9
+ li{list-style:none;}
10
+ h1,h2,h3{font-size:100%;font-weight:bold;}
11
+
12
+ body{padding:10px; font-family: "trebuchet ms", helvetica, sans-serif;}
13
+ h1{border-bottom: 1px solid #CCC; margin:2ex 0; font-size: 120%; font-weight: bold; }
14
+ h2{text-align:center;}
15
+ li{margin-left: 40px;}
16
+ ul{list-style-type: square;}
17
+ ol{list-style-type: decimal;}
18
+ ul, ol{margin-bottom: 2ex;}
19
+ .note{border-bottom: 1px solid #ddd; margin-bottom: 10px; padding-bottom: 10px;}
20
+ #footer{border-top: 1px solid #ccc;text-align: right;padding-right: 69px;min-height: 64px;height: auto !important;height: 64px;background: url('../images/logo_tiny.png') 100% 50% no-repeat;}
21
+ </style>
22
+ </head>
23
+ <body>
24
+ <h1><%= title %></h1>
25
+
26
+ <section>
27
+ <h2>Issues</h2>
28
+ <% issues.each do |issue| %>
29
+ <div class="note"><%= markup(issue.text) %></div>
30
+ <% end %>
31
+ </section>
32
+
33
+ <section>
34
+ <h2>Notes assigned to the <%= reporting_cat.name %> category</h2>
35
+ <% notes.each do |note| %>
36
+ <div class="note"><%= markup(note.text) %></div>
37
+ <% end %>
38
+ </section>
39
+
40
+ <div id="footer">
41
+ <br/>
42
+ effective collaboration<br/>
43
+ <a href="http://dradisframework.org">http://dradisframework.org</a>
44
+ </div>
45
+ </body>
46
+ </html>
@@ -0,0 +1,146 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+
8
+ <title><%= title %></title>
9
+ <style type="text/css">
10
+ /* Sticky footer styles
11
+ /* See:
12
+ /* http://getbootstrap.com/examples/sticky-footer/
13
+ -------------------------------------------------- */
14
+ html {
15
+ position: relative;
16
+ min-height: 100%;
17
+ }
18
+ body {
19
+ /* Margin bottom by footer height */
20
+ margin-bottom: 60px;
21
+ padding-bottom: 60px;
22
+ }
23
+ #footer {
24
+ position: absolute;
25
+ bottom: 0;
26
+ width: 100%;
27
+ /* Set the fixed height of the footer here */
28
+ height: 60px;
29
+ background-color: #f5f5f5;
30
+ }
31
+
32
+
33
+ /* Custom page CSS
34
+ -------------------------------------------------- */
35
+ /* Not required for template or sticky footer method. */
36
+
37
+ .container {
38
+ padding: 0 15px;
39
+ }
40
+ .container .text-muted {
41
+ margin: 20px 0;
42
+ }
43
+ #footer2{border-top: 1px solid #ccc;text-align: right;padding-right: 69px;min-height: 64px;height: auto !important;height: 64px;background: url('/assets/logopro_tiny.png') 100% 50% no-repeat;}
44
+ </style>
45
+
46
+ <!-- Latest compiled and minified CSS -->
47
+ <!-- <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> -->
48
+ <link rel="stylesheet" href="/assets//bootstrap.css">
49
+
50
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
51
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
52
+ <!--[if lt IE 9]>
53
+ <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
54
+ <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
55
+ <![endif]-->
56
+ </head>
57
+ <body>
58
+ <noscript>
59
+ <div class="alert alert-danger">
60
+ <p><strong>Warning</strong>: this report template loads jQuery and Bootstrap JS files from their CDNs, but JavaScript seems to be disabled.</p>
61
+ </div>
62
+ </noscript>
63
+
64
+ <div class="container">
65
+
66
+ <h1><%= title %></h1>
67
+
68
+ <h2>Project notes</h2>
69
+ <p class="lead">In this section you'll find any notes assigned to the <strong>Report category</strong>.</p>
70
+ <% notes.each do |note| %>
71
+ <div class="panel panel-default">
72
+ <div class="panel-body">
73
+ <%= markup(note.text) %>
74
+ </div>
75
+ </div>
76
+ <% end %>
77
+
78
+
79
+ <h2>Project issues</h2>
80
+ <p class="lead">In this section you'll find your project's Issues.</p>
81
+ <% issues.each do |issue| %>
82
+ <div class="panel panel-default">
83
+ <div class="panel-body">
84
+ <%= markup(issue.text) %>
85
+
86
+ <h3>Assets affected by this issue</h3>
87
+ <% if issue.affected.empty? %>
88
+ <p class="well">None so far.</p>
89
+ <% else %>
90
+ <div class="row">
91
+ <div class="col-md-3 evidence-sidebar">
92
+ <ul class="nav nav-list evidence-sidenav">
93
+ <% issue.evidence_by_node.each do |node, instances| %>
94
+ <li><a href="#evidence_for_<%= node.id %>"><i class="glyphicon glyphicon-<%= ['folder-close','hdd'][node.type_id] %>"></i> <%= node.label %> (<%= pluralize instances.count, 'instance' %>)</a></li>
95
+ <% end %>
96
+ </ul>
97
+ </div>
98
+
99
+ <div class="col-md-9">
100
+ <% issue.evidence_by_node.each do |node, instances| %>
101
+ <section id="evidence_for_#{node.id}">
102
+ <% if instances.count == 1 %>
103
+ <div class="content-textile" id="node_<%= node.id %>_instance_0">
104
+ <%= markup(instances.first.content) %>
105
+ </div>
106
+ <% else %>
107
+ <ul class="nav nav-tabs">
108
+ <% instances.each_with_index do |evidence, i| %>
109
+ <li class="<%= 'active' if i==0 %>"><a href="#node_<%= node.id %>_instance_<%= i %>" data-toggle="tab">Instance <%= i %></a></li>
110
+ <% end %>
111
+ </ul>
112
+
113
+ <div class="tab-content">
114
+ <% instances.each_with_index do |evidence, i| %>
115
+ <div class="content-textile tab-pane<%= ' active' if i==0 %>" id="node_<%= node.id %>_instance_<%= i %>">
116
+ <%= markup(evidence.content) %>
117
+ </div>
118
+ <% end %>
119
+ </div>
120
+ <% end %>
121
+
122
+ </section>
123
+ <% end %>
124
+ </div>
125
+ </div>
126
+ <% end %>
127
+ </div>
128
+ </div>
129
+ <% end %>
130
+
131
+ </div>
132
+
133
+ <div id="footer">
134
+ <div class="container">
135
+ <p class="text-muted text-center"><%= title%> - <a href="http://dradisframework.org">http://dradisframework.org</a></p>
136
+ </div>
137
+ </div>
138
+
139
+ <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
140
+ <!-- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> -->
141
+ <script src="/assets/jquery.js"></script>
142
+ <!-- Include all compiled plugins (below), or include individual files as needed -->
143
+ <!-- <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> -->
144
+ <script src="/assets/bootstrap.js"></script>
145
+ </body>
146
+ </html>
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dradis-html_export
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Martin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dradis-plugins
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails_autolink
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: RedCloth
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 4.2.9
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 4.2.9
55
+ description: Export to HTML plugin for the Dradis Framework
56
+ email:
57
+ - "<etd@nomejortu.com>"
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".travis.yml"
65
+ - CONTRIBUTING.md
66
+ - Gemfile
67
+ - README.md
68
+ - Rakefile
69
+ - app/controllers/dradis/plugins/html_export/base_controller.rb
70
+ - config/routes.rb
71
+ - dradis-html_export.gemspec
72
+ - lib/dradis-html_export.rb
73
+ - lib/dradis/plugins/html_export.rb
74
+ - lib/dradis/plugins/html_export/engine.rb
75
+ - lib/dradis/plugins/html_export/exporter.rb
76
+ - lib/dradis/plugins/html_export/gem_version.rb
77
+ - lib/dradis/plugins/html_export/version.rb
78
+ - lib/tasks/thorfile.rb
79
+ - spec/requests/html_export_spec.rb
80
+ - spec/spec_helper.rb
81
+ - templates/basic.html.erb
82
+ - templates/default_dradis_template_v3.0.html.erb
83
+ homepage: http://dradisframework.org
84
+ licenses:
85
+ - GPL-2
86
+ metadata: {}
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.9.3
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubyforge_project:
103
+ rubygems_version: 2.2.3
104
+ signing_key:
105
+ specification_version: 4
106
+ summary: Dradis HTML export plugin
107
+ test_files:
108
+ - spec/requests/html_export_spec.rb
109
+ - spec/spec_helper.rb