Sha256: 4aaee37e56103a05e3780341ec167356b596f37b5193c23ebdb4b4fd7bcc5760

Contents?: true

Size: 1.23 KB

Versions: 46

Compression:

Stored size: 1.23 KB

Contents

require "danger/plugin_support/plugin_parser"
require "danger/plugin_support/plugin_file_resolver"

module Danger
  class PluginJSON < CLAide::Command::Plugins
    self.summary = "Lint plugins from files, gems or the current folder. Outputs JSON array representation of Plugins on success."
    self.command = "json"

    attr_accessor :cork

    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.description = <<-DESC
      Converts a collection of file paths of Danger plugins into a JSON format.
    DESC

    self.arguments = [
      CLAide::Argument.new("Paths, Gems or Nothing", false, true)
    ]

    def run
      file_resolver = PluginFileResolver.new(@refs)
      data = file_resolver.resolve

      parser = PluginParser.new(data[:paths])
      parser.parse
      json = parser.to_json

      # Append gem metadata into every plugin
      data[:gems].each do |gem_data|
        json.each do |plugin|
          plugin[:gem_metadata] = gem_data if plugin[:gem] == gem_data[:gem]
        end
      end

      cork.puts json.to_json
    end
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
danger-9.5.1 lib/danger/commands/plugins/plugin_json.rb
danger-9.5.0 lib/danger/commands/plugins/plugin_json.rb
danger-9.4.3 lib/danger/commands/plugins/plugin_json.rb
danger-9.4.2 lib/danger/commands/plugins/plugin_json.rb
danger-9.4.1 lib/danger/commands/plugins/plugin_json.rb
danger-9.4.0 lib/danger/commands/plugins/plugin_json.rb
danger-9.3.2 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.36 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.35 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.34 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.33 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.32 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.31 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.30 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.29 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.28 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.27 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.26 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.25 lib/danger/commands/plugins/plugin_json.rb
danger-additional-logging-0.0.24 lib/danger/commands/plugins/plugin_json.rb