Sha256: b825afe7ce2036806aeee44bc1d39acc29fd9744c42ff43e986dcd904b63dfd2
Contents?: true
Size: 1.62 KB
Versions: 12
Compression:
Stored size: 1.62 KB
Contents
module Compass module Version # Returns a hash representing the version. # The :major, :minor, and :teeny keys have their respective numbers. # The :string key contains a human-readable string representation of the version. # The :rev key will have the current revision hash. # # This method swiped from Haml and then modified, some credit goes to Nathan Weizenbaum def version if defined?(@version) @version else read_version end end protected def scope(file) # :nodoc: File.join(File.dirname(__FILE__), '..', '..', file) end def read_version require 'yaml' @version = YAML::load(File.read(scope('VERSION.yml'))) @version[:teeny] = @version[:patch] @version[:string] = "#{@version[:major]}.#{@version[:minor]}" @version[:string] << ".#{@version[:patch]}" if @version[:patch] @version[:string] << ".#{@version[:state]}" if @version[:state] @version[:string] << ".#{@version[:build]}" if @version[:build] if !ENV['OFFICIAL'] && r = revision @version[:string] << ".#{r[0..6]}" end @version end def revision revision_from_git end def revision_from_git if File.exists?(scope('.git/HEAD')) rev = File.read(scope('.git/HEAD')).strip if rev =~ /^ref: (.*)$/ rev = File.read(scope(".git/#{$1}")).strip end end end end extend Compass::Version def self.const_missing(const) # This avoid reading from disk unless the VERSION is requested. if const == :VERSION version[:string] else super end end end
Version data entries
12 entries across 12 versions & 1 rubygems