class GxG::Version
Public Class Methods
new(params={})
click to toggle source
# File lib/gxg/gxg_elements.rb, line 7 def initialize(params={}) unless params.is_a?(::Hash) params = {:interpret => (params.to_s)} end @encoded_value = encode(params) end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/gxg/gxg_elements.rb, line 19 def <=>(other) return @encoded_value <=> other.encoded_value() end
encoded_value()
click to toggle source
# File lib/gxg/gxg_elements.rb, line 16 def encoded_value() @encoded_value end
increment(params={:revision => 1})
click to toggle source
# File lib/gxg/gxg_elements.rb, line 28 def increment(params={:revision => 1}) current = decode({:value => @encoded_value}) if current[:phase].is_a?(Hash) numeric_phase = current[:phase][:candidate].to_i + 2 else case current[:phase] when :alpha numeric_phase = 0 when :beta numeric_phase = 1 when :release numeric_phase = 99 end end if params[:phase].is_a?(Numeric) phase_increment = params[:phase] else phase_increment = 0 end new_value = {} # if params[:revision].is_a?(Numeric) if (params[:revision].to_i + current[:revision]) > 99999 params[:patch_level] = params[:patch_level].to_i + 1 new_value[:revision] = 0 else new_value[:revision] = (params[:revision].to_i + current[:revision]) end else new_value[:revision] = current[:revision] end # if params[:patch_level].is_a?(Numeric) if (params[:patch_level].to_i + current[:patch_level]) > 9999 phase_increment = phase_increment + 1 new_value[:patch_level] = 0 else new_value[:patch_level] = (params[:patch_level].to_i + current[:patch_level]) end else new_value[:patch_level] = current[:patch_level] end # if phase_increment > 0 if (phase_increment + numeric_phase) > 99 params[:tiny] = params[:tiny].to_i + 1 new_value[:phase] = 99 else new_value[:phase] = (phase_increment + numeric_phase) end else new_value[:phase] = numeric_phase end # if params[:tiny].is_a?(Numeric) if (params[:tiny].to_i + current[:tiny]) > 999 params[:minor] = params[:minor].to_i + 1 new_value[:tiny] = 0 else new_value[:tiny] = (params[:tiny].to_i + current[:tiny]) end else new_value[:tiny] = current[:tiny] end # if params[:minor].is_a?(Numeric) if (params[:minor].to_i + current[:minor]) > 999 params[:major] = params[:major].to_i + 1 new_value[:minor] = 0 else new_value[:minor] = (params[:minor].to_i + current[:minor]) end else new_value[:minor] = current[:minor] end # if params[:major].is_a?(Numeric) new_value[:major] = current[:major] + params[:major].to_i else new_value[:major] = current[:major] end # convert phase numeric value to Symbol / Hash if (2..98).include?(new_value[:phase]) new_value[:phase] = {:candidate => (new_value[:phase] - 2)} else case new_value[:phase] when 0 new_value[:phase] = :alpha when 1 new_value[:phase] = :beta when 99 new_value[:phase] = :release end end # @encoded_value = encode(new_value) self end
inspect()
click to toggle source
# File lib/gxg/gxg_elements.rb, line 25 def inspect() value.inspect end
to_s()
click to toggle source
# File lib/gxg/gxg_elements.rb, line 22 def to_s() value.inspect end
value()
click to toggle source
# File lib/gxg/gxg_elements.rb, line 13 def value() decode({:value => @encoded_value}) end