Sha256: 665893c50f5de6380ef0e42d72b081619043ea0f263be250b5af736ed6f2669b
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
require 'rubygems/comparator/base' class Gem::Comparator ## # Gem::Comparator::SpecComparator can # compare values from the gem verions specs class SpecComparator include Gem::Comparator::Base COMPARES = :specs ## # Compare common fields in spec def compare(specs, report, options = {}) info 'Checking spec parameters...' filter_params(SPEC_PARAMS, options[:param]).each do |param| values = values_from_specs(param, specs) # Are values the same? if same_values?(values) && options[:log_all] v = value(values[0]) report[param].section do set_header "#{same} #{param}:" puts v end elsif !same_values?(values) report[param].set_header "#{different} #{param}:" values.each_with_index do |value, index| report[param] << \ "#{Rainbow(specs[index].version).blue}: #{value}" end end end report end private def values_from_specs(param, specs) values = [] specs.each do |s| if s.respond_to? :"#{param}" values << s.send(:"#{param}") else warn "#{s.full_name} does not respond to " + "#{param}, skipping check" end end values end def value(value) case value when Gem::Requirement unless value.requirements.empty? r = value.requirements[0] "#{r[0]} #{r[1].version} " else '[]' end when String return value unless value.empty? '' else value.inspect end end def same_values?(values) values.count(values[0]) == values.size end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gem-compare-0.0.2 | lib/rubygems/comparator/spec_comparator.rb |