class Danger::PluginJSON

Attributes

cork[RW]

Public Class Methods

new(argv) click to toggle source
Calls superclass method
# File lib/danger/commands/plugins/plugin_json.rb, line 11
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

Public Instance Methods

run() click to toggle source
# File lib/danger/commands/plugins/plugin_json.rb, line 26
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