Sha256: 8a2bb9204946ca70a5e516f7cc8aad0a82b1e06c5a5bed8507410b4e2b9b264b
Contents?: true
Size: 1.5 KB
Versions: 6
Compression:
Stored size: 1.5 KB
Contents
require "danger/plugin_support/plugin_parser" require "danger/plugin_support/plugin_file_resolver" require "json" require "erb" module Danger class PluginReadme < CLAide::Command::Plugins self.summary = "Generates a README from a set of plugins" self.command = "readme" attr_accessor :cork, :json def initialize(argv) @refs = argv.arguments! unless argv.arguments.empty? @cork = Cork::Board.new(silent: argv.option("silent", false), verbose: argv.option("verbose", false)) super end self.summary = "Lint plugins from files, gems or the current folder. Outputs JSON array representation of Plugins on success." self.description = <<-DESC Converts a collection of file paths of Danger plugins into a format usable in a README. This is useful for Danger itself, but also for any plugins wanting to showcase their API. DESC self.arguments = [ CLAide::Argument.new("Paths, Gems or Nothing", false, true) ] attr_accessor :json, :markdown def run file_resolver = PluginFileResolver.new(@refs) paths = file_resolver.resolve_to_paths parser = PluginParser.new(paths) parser.parse self.markdown = Kramdown::Document.new(text, input: "GFM").to_html self.json = JSON.parse(parser.to_json_string) template = File.join(Danger.gem_path, "lib/danger/plugin_support/templates/readme_table.html.erb") cork.puts ERB.new(File.read(template), 0, "-").result(binding) end end end
Version data entries
6 entries across 6 versions & 1 rubygems