require 'rake'

require 'yaml'



module PhpThumbHelper

  ROOT_DIR      = File.expand_path(File.dirname(__FILE__))

  SRC_DIR       = File.join(ROOT_DIR, 'src')

  DOCS_DIR      = File.join(ROOT_DIR, 'apidocs')

  VERSION       = YAML.load(IO.read(File.join(ROOT_DIR, 'config.yml')))['CURRENT_VERSION'].gsub(' ', '-').downcase

  

  def self.bump_version (type = 'patch')

    data = YAML.load_file(File.join(ROOT_DIR, 'config.yml'))

    version = data['CURRENT_VERSION'].split('.')

    

    case type

    when "patch"

      version[2] = '0' + ((version[2].to_i)+1).to_s

    when "minor"

      version[1] = ((version[1].to_i)+1).to_s

    when "major"

      version[0] = ((version[0].to_i)+1).to_s

    end

    

    data['CURRENT_VERSION'] = version.join('.')

    

    File.open(File.join(ROOT_DIR, 'config.yml'), 'w') { |f| YAML.dump(data, f) }

  end

  

  def self.build_docs

    sh %{phpdoc -d #{PhpThumbHelper::SRC_DIR} -t #{PhpThumbHelper::DOCS_DIR} -o HTML:frames:DOM/earthli}

  end

end



desc "Creates API docs via phpdocumentor"

task :docs do

  PhpThumbHelper.build_docs

end



namespace :bump_version do

  desc "Bumps the patch version"

  task :patch do

    PhpThumbHelper.bump_version

  end

  desc "Bumps the minor version"

  task :minor do

    PhpThumbHelper.bump_version("patch")

  end

  desc "Bumps the major version"

  task :major do

    PhpThumbHelper.bump_version("major")

  end

end