Module: GemVersion

Defined in:
lib/gem_version.rb

Constant Summary collapse

@@gem_version_file =
'next_gem_version'
@@default_commit_message =
'incremented gem version'

Class Method Summary collapse

Class Method Details

.commit_and_push(project_directory = nil, msg = nil) ⇒ Object



39
40
41
42
43
44
# File 'lib/gem_version.rb', line 39

def self.commit_and_push(project_directory = nil, msg = nil)
  g=Git.open(project_directory || Dir.pwd, :log=>Logger.new(STDOUT))
  g.add(@@gem_version_file)
  g.commit(msg || @@default_commit_message)
  g.push
end

.gem_version_file=(str) ⇒ Object



9
10
11
# File 'lib/gem_version.rb', line 9

def self.gem_version_file=(str)
  @@gem_version_file = str
end

.increment_versionObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/gem_version.rb', line 28

def self.increment_version
  version = self.next_version
  components = version.split('.')
  components.push((components.pop.to_i + 1).to_s)
  new_version = components.join('.')
  file = File.new(@@gem_version_file, 'w')
  file.puts new_version
  file.close
  version
end

.init_version_fileObject



22
23
24
25
26
# File 'lib/gem_version.rb', line 22

def self.init_version_file
  file = File.new(@@gem_version_file, 'w')
  file.puts '0.0.1'
  file.close
end

.next_versionObject



13
14
15
16
17
18
19
20
# File 'lib/gem_version.rb', line 13

def self.next_version
  init_version_file unless File.exist?(@@gem_version_file)
  file = File.new(@@gem_version_file, 'r')
  version = file.gets.chomp
  raise "#{@@gem_version_file} file corrupt" unless (version && version =~ /^\d+\.\d+[\.\d+]+$/)
  file.close
  version
end