begin

require 'semver'
namespace :rake_rack do
  namespace :semver do

    desc "Display the latest version (form .semver)"
    task :version do
      RakeRack::SemverVersioning.latest_version
      RakeRack::SemverVersioning.tag
    end

    desc 'Increment major version in .semver (eg 1.2.3 => 2.0.0)'
    task :major do
      RakeRack::SemverVersioning.inc_major
      RakeRack::SemverVersioning.tag
    end

    desc 'Increment minor version in .semver (eg 1.2.3 => 1.3.0)'
    task :minor do
      RakeRack::SemverVersioning.inc_minor
      RakeRack::SemverVersioning.tag
    end

    desc 'Increment patch version in .semver (eg 1.2.3 => 2.0.0)'
    task :patch do
      RakeRack::SemverVersioning.inc_patch
      RakeRack::SemverVersioning.tag
    end

    desc 'Add or modify the current prerelease version (eg 1.2.3-rc1 => 1.2.3-rc2'
    task :prerelease, [:version] do |task, args|
      version = args[:version] || fail("Invalid usage: rake rake_rack:semver:prerelase['release name']")
      RakeRack::SemverVersioning.prerelease version
      RakeRack::SemverVersioning.tag
    end

    desc 'Increment major version and add a prerelease version (eg 1.2.3 => 2.0.0-rc1)'
    task :inc_prerelease, [:version] do |task, args|
      version = args[:version] || fail("Invalid usage: rake rake_rack:semver:inc_prerelase['release name']")
      RakeRack::SemverVersioning.inc_prerelease version
      RakeRack::SemverVersioning.tag
    end

    desc 'Remove prerelease version (eg 1.2.3-rc2 => 1.2.3)'
    task :release do
      RakeRack::SemverVersioning.release
      RakeRack::SemverVersioning.tag
    end
  end
end

rescue LoadError

$stderr.puts "Error: Semver not avaialble"

end