| Module | Haml::Version |
| In: |
lib/haml/version.rb
|
Returns a hash representing the version of Haml. The :major, :minor, and :teeny keys have their respective numbers. The :string key contains a human-readable string representation of the version. If Haml is checked out from Git, the :rev key will have the revision hash.
# File lib/haml/version.rb, line 8
8: def version
9: return @@version if defined?(@@version)
10:
11: numbers = File.read(scope('VERSION')).strip.split('.').map { |n| n.to_i }
12: @@version = {
13: :major => numbers[0],
14: :minor => numbers[1],
15: :teeny => numbers[2]
16: }
17: @@version[:string] = [:major, :minor, :teeny].map { |comp| @@version[comp] }.compact.join('.')
18:
19: if File.exists?(scope('REVISION'))
20: rev = File.read(scope('REVISION')).strip
21: rev = nil if rev !~ /^([a-f0-9]+|\(.*\))$/
22: end
23:
24: if (rev.nil? || rev == '(unknown)') && File.exists?(scope('.git/HEAD'))
25: rev = File.read(scope('.git/HEAD')).strip
26: if rev =~ /^ref: (.*)$/
27: rev = File.read(scope(".git/#{$1}")).strip
28: end
29: end
30:
31: if rev
32: @@version[:rev] = rev
33: unless rev[0] == ?(
34: @@version[:string] << "."
35: @@version[:string] << rev[0...7]
36: end
37: end
38:
39: @@version
40: end