Skip to content

Latest commit

 

History

History

version-check

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

version-check gem - up-to-date? - helpers for checking for / reporting outdated gem / library versions

Usage

Up-to-date? Version check all your libraries / gems on start-up at runtime.

Let's say you have a script that depends on many libraries / gems. How can you make sure the minimum version requirements are fulfilled?

Use the (global) version_check method in your script. Example:

outdated=version_check(['pakman','1.1.0',Pakman::VERSION],['fetcher','0.4.5',Fetcher::VERSION],['feedparser','2.1.2',FeedParser::VERSION],['feedfilter','1.1.1',FeedFilter::VERSION],['textutils','1.4.0',TextUtils::VERSION],['logutils','0.6.1',LogKernel::VERSION],['props','1.2.0',Props::VERSION],['pluto-models','1.5.4',Pluto::VERSION],['pluto-update','1.6.3',PlutoUpdate::VERSION],['pluto-merge','1.1.0',PlutoMerge::VERSION])ppoutdated

Pass along the version check records where the record items are 1) the name of the library / gem, 2) the minimum version requirement and 3) the "live" used version - for example, Pluto::VERSION will become at runtime 1.5.3 or something - depending on the installation / setup.

If all libraries / gems are up-to-date this will result in an empty outdated list / array:

[]

And if some libraries / gems are NOT matching the minimum version requirement the version record will get returned in the outdated list / array resulting in, for example:

[['pluto-models','1.5.4','1.5.3'],['pluto-update','1.6.3','1.4.1']]

Note: For now the version in use MUST always be greater or equal to the minimum version requirement.

And the minimum requirement might be just a major (e.g. 2 same as 2.x.x) or a major plus minor (e.g. 2.1 same as 2.1.x) version.

Bonus: Sorry - Cannot continue; please update the outdated gem(s)

Use the (global) version_check! method (with a bang !) in your script to automatically 1) check all versions, 2) report all outdated libraries / gems, 3) ask for an update and 4) exit. Example:

version_check!(['pakman','1.1.0',Pakman::VERSION],['fetcher','0.4.5',Fetcher::VERSION],['feedparser','2.1.2',FeedParser::VERSION],['feedfilter','1.1.1',FeedFilter::VERSION],['textutils','1.4.0',TextUtils::VERSION],['logutils','0.6.1',LogKernel::VERSION],['props','1.2.0',Props::VERSION],['pluto-models','1.5.4',Pluto::VERSION],['pluto-update','1.6.3',PlutoUpdate::VERSION],['pluto-merge','1.1.0',PlutoMerge::VERSION])

Case 1: If all libraries / gems are up-to-date nothing happens.

Case 2: If some libraries / gems are NOT matching the minimum version requirement this will result in, for example:

!!! ERROR: version check failed - 2 outdated gem(s):" pluto-models - min version required 1.5.4 > used/installed version 1.5.3 pluto-update - min version required 1.6.3 > used/installed version 1.4.1 sorry - cannot continue; please update the outdated gem(s) 

License

The version-check scripts are dedicated to the public domain. Use it as you please with no restrictions whatsoever.

Questions? Comments?

Send them along to the wwwmake Forum/Mailing List. Thanks!

close