diff --git a/record-and-playback/core/lib/recordandplayback/generators/events.rb b/record-and-playback/core/lib/recordandplayback/generators/events.rb index 9192fb633752bd478babe854bf1db747e070989f..abbf17a1142ed7da157dcd10cb7939903e682dd9 100755 --- a/record-and-playback/core/lib/recordandplayback/generators/events.rb +++ b/record-and-playback/core/lib/recordandplayback/generators/events.rb @@ -450,5 +450,52 @@ module BigBlueButton recording['bbb_version'] end + # Compare version numbers + # Returns true if version is newer than requested version + def self.bbb_version_compare(events_xml, major, minor=nil, micro=nil) + bbb_version = self.bbb_version(events_xml) + if bbb_version.nil? + # BigBlueButton 0.81 or earler + return false + end + + # Split the version string + match = /^(\d+)\.(\d+)\.(\d+)/.match(bbb_version) + if !match + raise "bbb_version #{bbb_version} is not in the correct format" + end + + # Check major version mismatch + if match[1].to_i > major + return true + end + if match[1].to_i < major + return false + end + + # Check minor version mismatch + if minor.nil? + return true + else + if match[2].to_i > minor + return true + end + if match[2].to_i < minor + return false + end + end + + # Check micro version mismatch + if micro.nil? + return true + else + if match[3].to_i >= micro + return true + else + return false + end + end + end + end end