Module: Sass::Version
- Includes:
- Util
- Defined in:
- /var/www/sass-pages/.sass/lib/sass/version.rb
Overview
Handles Sass version-reporting. Sass not only reports the standard three version numbers, but its Git revision hash as well, if it was installed from Git.
Constant Summary
Constants included from Util
Instance Method Summary
- - ({Symbol => String/Fixnum}) version Returns a hash representing the version of Sass.
Methods included from Util
#abstract, #ap_geq?, #ap_geq_3?, #array_minus, #av_template_class, #caller_info, #check_encoding, #check_range, #check_sass_encoding, #destructure, #enum_cons, #enum_slice, #enum_with_index, #extract!, #extract_values, #flatten, #glob, #group_by_to_a, #has?, #hash_to_a, #inject_values, #inspect_obj, #intersperse, #ironruby?, #jruby1_6?, #jruby?, #jruby_version, #lcs, #macruby?, #map_hash, #map_keys, #map_vals, #merge_adjacent_strings, #ord, #paths, #powerset, #rails_env, #rails_root, #rbx?, #restrict, #ruby1?, #ruby1_8?, #ruby1_8_6?, #sass_warn, #scope, #set_eql?, #set_hash, #silence_sass_warnings, #silence_warnings, #strip_string_array, #subsequence?, #substitute, #to_hash, #undefined_conversion_error_char, #version_geq, #version_gt, #windows?, #with_extracted_values
Instance Method Details
- ({Symbol => String/Fixnum}) version
Returns a hash representing the version of Sass. The :major, :minor, and :teeny keys have their respective numbers as Fixnums. The :name key has the name of the version. The :string key contains a human-readable string representation of the version. The :number key is the major, minor, and teeny keys separated by periods. The :date key, which is not guaranteed to be defined, is the DateTime at which this release was cut. If Sass is checked out from Git, the :rev key will have the revision hash. For example:
{
:string => "2.1.0.9616393",
:rev => "9616393b8924ef36639c7e82aa88a51a24d16949",
:number => "2.1.0",
:date => DateTime.parse("Apr 30 13:52:01 2009 -0700"),
:major => 2, :minor => 1, :teeny => 0
}
If a prerelease version of Sass is being used, the :string and :number fields will reflect the full version (e.g. "2.2.beta.1"), and the :teeny field will be -1. A :prerelease key will contain the name of the prerelease (e.g. "beta"), and a :prerelease_number key will contain the rerelease number. For example:
{
:string => "3.0.beta.1",
:number => "3.0.beta.1",
:date => DateTime.parse("Mar 31 00:38:04 2010 -0700"),
:major => 3, :minor => 0, :teeny => -1,
:prerelease => "beta",
:prerelease_number => 1
}
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File '/var/www/sass-pages/.sass/lib/sass/version.rb', line 50
def version
return @@version if defined?(@@version)
numbers = File.read(scope('VERSION')).strip.split('.').
map {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
name = File.read(scope('VERSION_NAME')).strip
@@version = {
:major => numbers[0],
:minor => numbers[1],
:teeny => numbers[2],
:name => name
}
if date = version_date
@@version[:date] = date
end
if numbers[3].is_a?(String)
@@version[:teeny] = -1
@@version[:prerelease] = numbers[3]
@@version[:prerelease_number] = numbers[4]
end
@@version[:number] = numbers.join('.')
@@version[:string] = @@version[:number].dup
if rev = revision_number
@@version[:rev] = rev
unless rev[0] == ?(
@@version[:string] << "." << rev[0...7]
end
end
@@version[:string] << " (#{name})"
@@version
end
|