Sha256: 07cd4d15fae3fd9a1f2bdedf731fd852cd4841f6626ab55e93a672c014c7f9af

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 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-webdriver.json").read)
    versions.map! { |e| e.fetch('number')}
  end

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

    left = "watir-webdriver-#{old_version}.gem"
    right = new_version == "." ? new_version : "watir-webdriver-#{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

6 entries across 6 versions & 1 rubygems

Version Path
watir-webdriver-0.9.9 support/version_differ.rb
watir-webdriver-0.9.3 support/version_differ.rb
watir-webdriver-0.9.2 support/version_differ.rb
watir-webdriver-0.9.1 support/version_differ.rb
watir-webdriver-0.9.0 support/version_differ.rb
watir-webdriver-0.8.0 support/version_differ.rb