Sha256: a6a0fea0d6d2464a80edead99197cf526a13b3d352ef2be65396960e10b43400
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
require 'yaml' class Bueller class VersionHelper class VersionMissing < StandardError; end class MalformattedVersion < StandardError; end attr_accessor :gemspec_helper attr_reader :major, :minor, :patch, :build def initialize(gemspec_helper) self.gemspec_helper = gemspec_helper parse_version end def version_path File.join(gemspec_helper.base_dir, 'lib', gemspec_helper.project_name, 'version.rb') end def version_source @version_source ||= File.read version_path end def parse_version if version_source =~ /VERSION[^\d]+(\d+)\.(\d+)\.(\d+)(\.([^'"]*))?/ @major = $1.to_i @minor = $2.to_i @patch = $3.to_i @build = $5 else raise VersionMissing, "lib/#{gemspec_helper.project_name}/version.rb doesn't contain a version string" end end def write_version version_source.sub! /VERSION\s*=.*/, %Q{VERSION = "#{to_s}"} File.open(version_path, 'w') { |f| f.puts version_source } parse_version end def bump_major @major += 1 @minor = 0 @patch = 0 @build = nil end def bump_minor @minor += 1 @patch = 0 @build = nil end def bump_patch @patch += 1 @build = nil end def update_to(major, minor, patch, build=nil) @major = major @minor = minor @patch = patch @build = build end def to_s [major, minor, patch, build].compact.join('.') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bueller-0.0.5 | lib/bueller/version_helper.rb |