Class: YARD::CLI::Diff
Overview
CLI command to return the objects that were added/removed from 2 versions of a project (library, gem, working copy).
Instance Method Summary collapse
- #description ⇒ Object
-
#initialize ⇒ Diff
constructor
A new instance of Diff.
- #run(*args) ⇒ Object
Constructor Details
#initialize ⇒ Diff
Returns a new instance of Diff.
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/yard/cli/diff.rb', line 12 def initialize super @list_all = false @use_git = false @compact = false @modified = true @verifier = Verifier.new @old_git_commit = nil @old_path = Dir.pwd log.show_backtraces = true end |
Instance Method Details
#description ⇒ Object
24 25 26 |
# File 'lib/yard/cli/diff.rb', line 24 def description 'Returns the object diff of two gems or .yardoc files' end |
#run(*args) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/yard/cli/diff.rb', line 28 def run(*args) registry = optparse(*args).map do |gemfile| if @use_git load_git_commit(gemfile) all_objects elsif load_gem_data(gemfile) log.info "Found #{gemfile}" all_objects else log.error "Cannot find gem #{gemfile}" nil end end.compact return if registry.size != 2 first_object = nil [["Added objects", "A", added_objects(*registry)], ["Modified objects", "M", modified_objects(*registry)], ["Removed objects", "D", removed_objects(*registry)]].each do |name, short, objects| next if short == "M" && @modified == false next if objects.empty? last_object = nil all_objects_notice = false log.puts name + ":" unless @compact objects.sort_by(&:path).each do |object| if !@list_all && last_object && object.parent == last_object log.print " (...)" unless all_objects_notice all_objects_notice = true next elsif @compact log.puts if first_object else log.puts end all_objects_notice = false log.print "" + (@compact ? "#{short} " : " ") + object.path + " (#{object.file}:#{object.line})" last_object = object first_object = true end unless @compact log.puts; log.puts end end log.puts if @compact end |