Class: TomlVersioner

Inherits:
Object
  • Object
show all
Defined in:
lib/rake-extensions.rb

Instance Method Summary collapse

Constructor Details

#initialize(version_dir) ⇒ TomlVersioner

Returns a new instance of TomlVersioner.



71
72
73
# File 'lib/rake-extensions.rb', line 71

def initialize(version_dir)
  @version_dir = version_dir
end

Instance Method Details

#get_current_versionObject



79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/rake-extensions.rb', line 79

def get_current_version()
  current_version = nil
  FileUtils.cd @version_dir, :verbose => false do
    ['Cargo.toml'].each do |file|
      text = File.read(file)
      if match = text.match(/^version\s=\s\"(.*)\"/i)
        current_version = match.captures[0]
      end
    end
  end
  current_version
end

#get_next_version(jump) ⇒ Object



74
75
76
77
78
# File 'lib/rake-extensions.rb', line 74

def get_next_version(jump)
  current_version = get_current_version()
  v = Version.new(current_version)
  v.send(jump)
end

#increment_version(jump) ⇒ Object



91
92
93
94
95
# File 'lib/rake-extensions.rb', line 91

def increment_version(jump)
  next_version = get_next_version(jump)
  puts "increment version from #{get_current_version} ==> #{next_version}"
  update_version(next_version)
end

#update_version(new_version) ⇒ Object



96
97
98
99
100
101
102
103
104
# File 'lib/rake-extensions.rb', line 96

def update_version(new_version)
  FileUtils.cd @version_dir, :verbose => false do
    ['Cargo.toml'].each do |file|
      text = File.read(file)
      new_contents = text.gsub(/^version\s=\s\"\d+\.\d+\.\d+\"/, "version = \"#{new_version}\"")
      File.open(file, "w") { |f| f.puts new_contents }
    end
  end
end