Sha256: f50df2903052cd9482e0c30ffd8e34d544fc1e3ad18822cf2541a53528de8ce4

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

module Dradis
  module Plugins
    module Templates
      module Samples
        extend ActiveSupport::Concern

        included do
          # Keep track of any templates the plugin defines
          paths['dradis/templates'] = 'templates'
        end

        module ClassMethods
          def copy_samples(args = {})
            destination = args.fetch(:to)

            destination_dir = File.join(destination, plugin_name.to_s)
            FileUtils.mkdir_p(destination_dir) if integration_samples.any?

            integration_samples.each do |template|
              destination_file = File.join(destination_dir, File.basename(template))

              Rails.logger.info do
                "Updating templates for #{plugin_name} plugin. "\
                "Destination: #{destination}"
              end
              FileUtils.cp(template, destination_file)
            end
          end

          private

          def integration_samples(args = {})
            @templates ||= begin
              if paths['dradis/templates'].existent.any?
                Dir["#{paths['dradis/templates'].existent.first}/*.sample"]
              else
                []
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dradis-plugins-4.15.0 lib/dradis/plugins/templates/samples.rb
dradis-plugins-4.14.0 lib/dradis/plugins/templates/samples.rb
dradis-plugins-4.13.0 lib/dradis/plugins/templates/samples.rb