class GitV
Public Class Methods
new(src_root = nil, version_file = nil)
click to toggle source
# File lib/gitv/gitv.rb, line 2 def initialize(src_root = nil, version_file = nil) @src_root = src_root || Dir.pwd @version_file = version_file || File.join( 'lib', 'data', 'version' ) @abs_version_file = File.join( @src_root, @version_file ) end
Public Instance Methods
cache()
click to toggle source
# File lib/gitv/gitv.rb, line 12 def cache FileUtils.rm_rf( @abs_version_file ) FileUtils.mkdir_p( File.dirname( @abs_version_file ) ) File.write( @abs_version_file, version ) @version_file end
version()
click to toggle source
# File lib/gitv/gitv.rb, line 8 def version @ver ||= retrieve_info end
Private Instance Methods
cached_version()
click to toggle source
# File lib/gitv/gitv.rb, line 26 def cached_version File.read( @abs_version_file ) end
git_version()
click to toggle source
# File lib/gitv/gitv.rb, line 30 def git_version v = %x(git describe --tags --dirty) if m = v.match( /^v([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$/ ) "#{m[1]}.#{m[2]}.#{m[3]}#{m[4].gsub( '-', '.' )}" else raise "Failed to parse version string #{v}" end end
retrieve_info()
click to toggle source
# File lib/gitv/gitv.rb, line 22 def retrieve_info File.directory?( File.join( @src_root, '.git' ) ) ? git_version : cached_version end