class Autoversion::Versioner
Public Class Methods
new(versionfileContents, pwd=nil)
click to toggle source
# File lib/autoversion/versioner.rb, line 7 def initialize versionfileContents, pwd=nil # Eval the Versionfile within the DSL @read_blk, @write_blk, @listeners, @config = Autoversion::DSL.evaluate versionfileContents raise UnableToReadVersion unless @read_blk # Fetch current version @current = read_version if @read_blk @gitter = ::Autoversion::Gitter.new(pwd || Dir.pwd, @config[:git]) end
Public Instance Methods
current_version()
click to toggle source
# File lib/autoversion/versioner.rb, line 19 def current_version @current end
increment!(type, simulate=false)
click to toggle source
# File lib/autoversion/versioner.rb, line 27 def increment! type, simulate=false @gitter.ensure_cleanliness! nextVersion = @current.increment(type) process_before type, @current, nextVersion unless simulate @gitter.ensure_valid_branch! type write_version @current, nextVersion @current = nextVersion @gitter.commit! type, @current.to_s end process_after type, @current end
next_version(type)
click to toggle source
# File lib/autoversion/versioner.rb, line 23 def next_version type @current.increment(type) end
Private Instance Methods
notify_listeners(type, event, *args)
click to toggle source
# File lib/autoversion/versioner.rb, line 64 def notify_listeners type, event, *args @listeners.select{|l| l[:type] == type && l[:event] == event }.each do |listener| listener[:blk].call *args end end
process_after(event, currentVersion)
click to toggle source
# File lib/autoversion/versioner.rb, line 59 def process_after event, currentVersion notify_listeners :after, event, currentVersion notify_listeners :after, :version, currentVersion end
process_before(event, currentVersion, nextVersion)
click to toggle source
# File lib/autoversion/versioner.rb, line 54 def process_before event, currentVersion, nextVersion notify_listeners :before, event, currentVersion, nextVersion notify_listeners :before, :version, currentVersion, nextVersion end
read_version()
click to toggle source
# File lib/autoversion/versioner.rb, line 46 def read_version Autoversion::SemVer.new @read_blk.call end
write_version(currentVersion, nextVersion)
click to toggle source
# File lib/autoversion/versioner.rb, line 50 def write_version currentVersion, nextVersion @write_blk.call currentVersion, nextVersion end