Module: Kaal::DelayedJob::MySQLVersionSupport

Defined in:
lib/kaal/delayed_job/mysql_version_support.rb

Overview

MySQL version helper for delayed-job claim strategy selection.

Constant Summary collapse

MINIMUM_SKIP_LOCKED_VERSION =
800_00

Class Method Summary collapse

Class Method Details

.integer_prefix(value) ⇒ Object



35
36
37
38
39
40
# File 'lib/kaal/delayed_job/mysql_version_support.rb', line 35

def integer_prefix(value)
  digits = value.to_s.each_char.take_while { |character| character.between?('0', '9') }.join
  return nil if digits.empty?

  digits.to_i
end

.skip_locked_supported?(version_string) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/kaal/delayed_job/mysql_version_support.rb', line 15

def skip_locked_supported?(version_string)
  version_number(version_string) >= MINIMUM_SKIP_LOCKED_VERSION
end

.version_components(version_string) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/kaal/delayed_job/mysql_version_support.rb', line 26

def version_components(version_string)
  major, minor, patch = version_string.to_s.split('.', 3)
  [
    integer_prefix(major),
    integer_prefix(minor),
    integer_prefix(patch)
  ]
end

.version_number(version_string) ⇒ Object



19
20
21
22
23
24
# File 'lib/kaal/delayed_job/mysql_version_support.rb', line 19

def version_number(version_string)
  major, minor, patch = version_components(version_string)
  return 0 unless major && minor && patch

  (major * 10_000) + (minor * 100) + patch
end