lib/raykit/project.rb



require 'rake/clean'
RAKE_DIRECTORY=Rake.application.original_dir

module Raykit
    class Project
        attr_accessor :name
        @directory
        @version

        def initialize()
            @name=NAME if(defined?(NAME))
            @directory=RAKE_DIRECTORY
            @version=Raykit::Version.detect
        end

        def directory
            @directory
        end

        def version
            @version
        end

        def info
            puts "Raykit::Environment.root_dir=#{Raykit::Environment.root_dir}"
            puts "Raykit::Environment.home_dir=#{Raykit::Environment.home_dir}"
            puts "PROJECT.name=#{PROJECT.name}"
            puts "PROJECT.version=#{PROJECT.version}"
        end

        def commit
            Dir.chdir(@directory) do
                if(File.exist?('.gitignore'))
                    Raykit::run("git add --all")
                    if(GIT_DIRECTORY.outstanding_commit?)
                        Raykit::run("git commit -m'update'")
                        Raykit::run("git push")
                    end  
                else
                    puts "warning: .gitignore not found."
                end
            end
            self
        end

        def push
            Dir.chdir(@directory) do
                Raykit::run('git push')
                Raykit::run('git push --tags')
            end
            self
        end

        def pull
            Dir.chdir(@directory) do
                Raykit::run('git pull')
            end
            self
        end

        def tag
            Dir.chdir(@directory) do
                tag = `git describe --abbrev=0 --tags`.strip
                if(@version != tag)
                    Raykit::run('git add --all')
                    Raykit::run("git tag #{@version} -m'#{@version}'")
                    Raykit::run('git push')
                    Raykit::run("git push --tags")
                end
            end
            self
        end
    end 
end