Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Outline

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] )

pp outdated

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!

Morty Proxy This is a proxified and sanitized view of the page, visit original site.