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
- .change_version ⇒ Object
- .ensure_setup ⇒ Object
- .gemspec ⇒ Object
- .reload_version ⇒ Object
- .setup(namespace, version_file) ⇒ Object
Class Method Details
.change_version ⇒ Object
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_setup ⇒ Object
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 |
.gemspec ⇒ Object
59 60 61 |
# File 'lib/xn_gem_release_tasks.rb', line 59 def self.gemspec eval(File.read(Dir['*.gemspec'].first)) end |
.reload_version ⇒ Object
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 |