class Raykit::Version
Version functionality
def self.detect(name,verbose=false)
def self.detect(name,verbose=false) version=detect_from_file("#{name}/#{name}.csproj",/<Version>([\d.]+)</,verbose) return version if(version.length>0) version=detect_from_file("#{name}/Properties/AssemblyInfo.cs",/^\[assembly: AssemblyVersion\(\"([.\w]+)/,verbose) return version if(version.length>0) version=detect_from_file("#{name}.gemspec",/version[\s]+=[\s]+['"]([\w.]+)['"]/,verbose) return version if(version.length>0) version=detect_from_file("#{name}.nuspec",/<[Vv]ersion>([\d.]+)</,verbose) return version if(version.length>0) if(verbose) warning="\u26A0" symbol=Rainbow(warning.encode('utf-8')).yellow puts symbol + ' version not detected' end '' end
def self.detect_from_file(filename,regex,verbose)
def self.detect_from_file(filename,regex,verbose) version='' if(File.exists?(filename)) match = IO.read(filename).match(regex) if(!match.nil? && match.captures.length>0) version = match.captures[0] end else return '' end if(verbose) if(version.length > 0) puts "version detected in #{filename}" else puts "no version detected in #{filename}, regex #{regex.source}" end end version end