Module: XNGemReleaseTasks

Defined in:
lib/xn_gem_release_tasks.rb,
lib/xn_gem_release_tasks/version.rb

Constant Summary collapse

V =
/(?<before>\s*\bVERSION\s*=\s*")(?<major>\d+)\.(?<minor>\d+)\.(?<point>\d+)(?:\.(?<pre>\w+))?(?<after>".*)/
VERSION =
"0.1.32"

Class Method Summary collapse

Class Method Details

.change_versionObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/xn_gem_release_tasks.rb', line 27

def self.change_version
  ensure_setup
  f = File.read(NAMESPACE::VERSION_FILE)
  lines = f.each_line.map do |line|
    match = V.match line
    if match
      yield line, match[:before], match[:major], match[:minor], match[:point], match[:pre], match[:after]
    else
      line
    end
  end
  File.open(NAMESPACE::VERSION_FILE, 'w') do |f|
    f.puts lines.join
  end
end

.ensure_setupObject



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

def self.ensure_setup
  raise "Must run XNGemReleaseTasks.setup(LibModule, 'path/to/version.rb') first" unless NAMESPACE
end

.gemspecObject



59
60
61
# File 'lib/xn_gem_release_tasks.rb', line 59

def self.gemspec
  eval(File.read(Dir['*.gemspec'].first))
end

.reload_versionObject



43
44
45
46
47
48
# File 'lib/xn_gem_release_tasks.rb', line 43

def self.reload_version
  ensure_setup
  NAMESPACE.send :remove_const, :VERSION
  load NAMESPACE::VERSION_FILE
  NAMESPACE::VERSION
end

.setup(namespace, version_file) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/xn_gem_release_tasks.rb', line 50

def self.setup(namespace, version_file)
  raise "namespace must be a module" unless namespace.is_a? Module
  raise "namespace does not have a current version" unless namespace::VERSION
  raise "#{ version_file } file does not exist" unless File.exist? version_file
  raise "You may not set up XNGemReleaseTasks multiple times" if defined? NAMESPACE
  self.const_set :NAMESPACE, namespace
  namespace.const_set :VERSION_FILE, version_file
end