Class: Danger::CIDocs
- Defined in:
- lib/danger/commands/systems.rb
Instance Attribute Summary
Attributes inherited from Runner
Instance Method Summary collapse
Methods inherited from Runner
#initialize, options, #validate!
Constructor Details
This class inherits a constructor from Danger::Runner
Instance Method Details
#run ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/danger/commands/systems.rb', line 12 def run here = File.dirname(__FILE__) ci_source_paths = Dir.glob(here + "/../ci_source/*.rb") require "yard" # Pull out all the Danger::CI subclasses docs registry = YARD::Registry.load(ci_source_paths, true) ci_sources = registry.all(:class) .select { |klass| klass.inheritance_tree.map(&:name).include? :CI } .reject { |source| source.name == :CI } .reject { |source| source.name == :LocalGitRepo } # Fail if anything is added and not documented cis_without_docs = ci_sources.select { |source| source.base_docstring.empty? } unless cis_without_docs.empty? cork.puts "Please add docs to: #{cis_without_docs.map(&:name).join(', ')}" abort("Failed.".red) end # Output a JSON array of name and details require "json" cork.puts ci_sources.map { |ci| { name: ci.name, docs: ci.docstring } }.to_json end |