Module: RazorRisk::Cassini::Util::VersionUtil
- Includes:
- Pantheios, Xqsr3::Quality::ParameterChecking
- Defined in:
- lib/razor_risk/cassini/util/version_util.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#check_version_compatibility(actual_module_or_version, required_version, lib_name = nil, **options) ⇒ Object
Checks the required and actual version of a given library, aborting with a detailed message if not compatible.
Class Method Details
.included(receiver) ⇒ Object
37 38 39 40 |
# File 'lib/razor_risk/cassini/util/version_util.rb', line 37 def self.included receiver receiver.extend self end |
Instance Method Details
#check_version_compatibility(actual_module_or_version, required_version, lib_name = nil, **options) ⇒ Object
Checks the required and actual version of a given library, aborting with a detailed message if not compatible
Signature
-
Parameters:
- -
actual_module_or_version [ ::Module, ::String, [ ::String, Integer]] The module or version being tested. Recommended usage is to pass the module (which allows inference of the name)
- -
required_version [ ::String, [ ::Integer ]] The required version, e.g. [ 0, 1, 2, 3] or '0.1.2.3'
- -
lib_name [::String] The name of the library. May be
nilifactual_module_or_versionis a::Module, the name of which will be used instead
- -
-
Options:
:aborter:: [ responds to :abort(::String) ] An aborter. May benil, in which case::Kernelis used:process_name:: [::String] The name of the process. May benil, in which case it is inferred from the calling script
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/razor_risk/cassini/util/version_util.rb', line 62 def check_version_compatibility actual_module_or_version, required_version, lib_name = nil, ** check_parameter actual_module_or_version, 'actual_module_or_version', types: [ ::Module, [ ::String, ::Integer ], ::String ] check_parameter required_version, 'required_version', types: [ [ ::String, ::Integer ], ::String ] check_option , :aborter, allow_nil: true, responds_to: [ :abort ] aborter = [:aborter] || ::Kernel process_name = [:process_name] || ::Pantheios::Util::ProcessUtil.derive_process_name lib_name ||= actual_module_or_version.to_s if ::Module === actual_module_or_version actual_version = ::Module === actual_module_or_version ? actual_module_or_version::VERSION : actual_module_or_version required_s = ::Array === required_version ? required_version.join('.') : required_version aborter.abort "#{process_name}: FATAL: this program requires #{lib_name} version #{required_s} or later" if ::Pantheios::Util::VersionUtil.version_compare(required_version, actual_version) > 0 end |