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