dradis-html_export 3.3.2

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.
@@ -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