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)
- - (Object) description
-
- (Diff) initialize
constructor
A new instance of Diff.
- - (Object) run(*args)
Methods inherited from Command
#common_options, #load_script, #parse_options, run
Constructor Details
- (Diff) initialize
A new instance of Diff
11 12 13 14 15 16 17 18 |
# File 'lib/yard/cli/diff.rb', line 11 def initialize super @list_all = false @use_git = false @old_git_commit = nil @old_path = Dir.pwd log.show_backtraces = true end |
Instance Method Details
- (Object) description
20 21 22 |
# File 'lib/yard/cli/diff.rb', line 20 def description 'Returns the object diff of two gems or .yardoc files' end |
- (Object) run(*args)
24 25 26 27 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 |
# File 'lib/yard/cli/diff.rb', line 24 def run(*args) registry = optparse(*args).map do |gemfile| if @use_git load_git_commit(gemfile) Registry.all.map {|o| o.path } else if load_gem_data(gemfile) log.info "Found #{gemfile}" Registry.all.map {|o| o.path } else log.error "Cannot find gem #{gemfile}" nil end end end.compact return if registry.size != 2 [ ["Added objects", registry[1] - registry[0]], ["Removed objects", registry[0] - registry[1]]].each do |name, objects| next if objects.empty? last_object = nil all_objects_notice = false puts name + ":" objects.sort.each do |object| if !@list_all && last_object && object =~ /#{Regexp.quote last_object}(::|\.|#)/ print " (...)" unless all_objects_notice all_objects_notice = true next else puts end all_objects_notice = false print " " + object last_object = object end puts puts end end |