Class: Autoversion::Versioner

Inherits:
Object
  • Object
show all
Defined in:
lib/autoversion/versioner.rb

Defined Under Namespace

Classes: UnableToReadVersion

Instance Method Summary collapse

Constructor Details

#initialize(versionfileContents, pwd = nil) ⇒ Versioner

Returns a new instance of Versioner.



7
8
9
10
11
12
13
14
15
16
17
# 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

Instance Method Details

#current_versionObject



19
20
21
# File 'lib/autoversion/versioner.rb', line 19

def current_version
  @current
end

#increment!(type, simulate = false) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 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
    write_version @current, nextVersion 
    @current = nextVersion
    @gitter.commit! type, @current.to_s
  end

  process_after type, @current
end

#next_version(type) ⇒ Object



23
24
25
# File 'lib/autoversion/versioner.rb', line 23

def next_version type
  @current.increment(type)
end