Top Level Namespace

Defined Under Namespace

Classes: BreakoutParser

Instance Method Summary collapse

Instance Method Details

#check_version(name, need_ver) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'ext/breakout_parser/extconf.rb', line 22

def check_version name, need_ver
  exe = find_executable name
  return false unless exe
  exe_ver = `#{exe} -V`[/\d+\.\d+(\.\d+)?/]
  unless exe_ver
    puts "[?] cannot determine #{name} version"
    return false
  end
  exe_ver  =  exe_ver.split('.').map(&:to_i)
  need_ver = need_ver.split('.').map(&:to_i)
  r = (exe_ver[0] > need_ver[0]) || (
    (exe_ver[0] == need_ver[0]) && (
       (exe_ver[1] > need_ver[1]) ||
       (exe_ver[1] == need_ver[1] && (exe_ver[2] || 0) >= need_ver[2])
    )
  )
  puts "[-] wanted #{name} >= #{need_ver.join('.')}, but got only #{exe_ver.join('.')}" unless r
  r
end