class SocialStream::Release::Global::VersionFile
Manage component's version files
This code is based on gem_release's version_file.rb github.com/svenfuchs/gem-release
Copyright © 2010 Sven Fuchs <svenfuchs@artweb-design.de>
Constants
- NUMBER_PATTERN
- VERSION_PATTERN
Attributes
target[R]
Public Class Methods
new(target)
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 16 def initialize(target) @target = target || :patch end
Public Instance Methods
bump!()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 20 def bump! # Must load content before writing to it content File.open(filename, 'w+') { |f| f.write(bumped_content) } new_number end
filename()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 39 def filename "lib/social_stream/version.rb" end
new_number()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 29 def new_number @new_number ||= old_number.sub(NUMBER_PATTERN) do respond_to?(target, true) ? send(target, $1, $2, $3) : target end end
old_number()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 35 def old_number @old_number ||= content =~ VERSION_PATTERN && $2 end
Protected Instance Methods
bumped_content()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 61 def bumped_content content.sub(VERSION_PATTERN) { "#{$1}#{new_number}#{$3}" } end
content()
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 57 def content @content ||= File.read(filename) end
major(major, minor, patch)
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 45 def major(major, minor, patch) "#{major.to_i + 1}.0.0" end
minor(major, minor, patch)
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 49 def minor(major, minor, patch) "#{major}.#{minor.to_i + 1}.0" end
patch(major, minor, patch)
click to toggle source
# File lib/social_stream/release/global/version_file.rb, line 53 def patch(major, minor, patch) "#{major}.#{minor}.#{patch.to_i + 1}" end