Sha256: fa93876d62129b6d85213f09f7fac63682a2eeaef602d46655d5889ac8e02dd2

Contents?: true

Size: 1.37 KB

Versions: 43

Compression:

Stored size: 1.37 KB

Contents

class VersionDiffer

  def print_latest(io = $stdout)
    io.puts diff(last_version, ".")
  end

  def update(path)
    old = File.read(path)
    File.open(path, "w") do |file|
      print_latest(file)
      file << old
    end
  end

  def generate(path)
    versions = released_versions
    versions.unshift "."

    versions.each_cons(2) do |new_version, old_version|
      File.open(path, "a") do |file|
        file << diff(old_version, new_version)
      end
    end
  end

  private

  def last_version
    released_versions.first
  end

  def released_versions
    require 'open-uri'
    require 'multi_json'

    versions = MultiJson.decode(open("https://rubygems.org/api/v1/versions/watir.json").read)
    versions.map! { |e| e.fetch('number')}
  end

  def diff(old_version, new_version)
    puts "diffing #{old_version} -> #{new_version}"

    left = "watir-#{old_version}.gem"
    right = new_version == "." ? new_version : "watir-#{new_version}.gem"

    str = StringIO.new
    str.puts "#{new_version}"
    str.puts "=" * new_version.length
    str.puts

    # requires YARD > 0.8.2.1 (i.e. next release at the time of writing)
    content = `yard diff --all --query '!@private && @api.text != "private" && object.visibility == :public' #{left} #{right} 2>&1`
    str.puts content.split("\n").map { |line| line.empty? ? line : "   #{line}" }
    str.puts "\n\n"

    str.string
  end

end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
watir-6.13.0 support/version_differ.rb
watir-6.12.0 support/version_differ.rb
watir-6.11.0 support/version_differ.rb
watir-6.11.0.beta2 support/version_differ.rb
watir-6.11.0.beta1 support/version_differ.rb
watir-6.10.3 support/version_differ.rb
watir-6.10.2 support/version_differ.rb
watir-6.10.0 support/version_differ.rb
watir-6.9.1 support/version_differ.rb
watir-6.9.0 support/version_differ.rb
watir-6.8.4 support/version_differ.rb
watir-6.8.3 support/version_differ.rb
watir-6.8.2 support/version_differ.rb
watir-6.8.1 support/version_differ.rb
watir-6.8.0 support/version_differ.rb
watir-6.7.3 support/version_differ.rb
watir-6.7.2 support/version_differ.rb
watir-6.7.1 support/version_differ.rb
watir-6.7.0 support/version_differ.rb
watir-6.6.3 support/version_differ.rb