Class: Jack::VersionChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/jack/version_checker.rb

Constant Summary collapse

REQUIRED_VERSION =
"3.1.2"

Instance Method Summary collapse

Instance Method Details

#checkObject



10
11
12
13
14
15
16
# File 'lib/jack/version_checker.rb', line 10

def check
  major, minor, patch = parse_version(get_version)
  r_major, r_minor, r_patch = normalize_version(REQUIRED_VERSION)
  (major > r_major) ||
  (major == r_major && minor > r_minor) ||
  (major == r_major && minor == r_minor && patch >= r_patch)
end

#get_versionObject



18
19
20
# File 'lib/jack/version_checker.rb', line 18

def get_version
  `eb --version`
end

#leave(message = '') ⇒ Object

for specs



32
33
34
35
# File 'lib/jack/version_checker.rb', line 32

def leave(message='')
  puts("SORRY: #{message}, please install at least version #{REQUIRED_VERSION}")
  exit 0
end

#normalize_version(parsed) ⇒ Object



27
28
29
# File 'lib/jack/version_checker.rb', line 27

def normalize_version(parsed)
  parsed.split('.').collect(&:to_i)
end

#parse_version(version) ⇒ Object



22
23
24
25
# File 'lib/jack/version_checker.rb', line 22

def parse_version(version)
  parsed = version.match(/EB CLI (\d+\.\d+\.\d+)/)[1]
  normalize_version(parsed)
end

#runObject



5
6
7
8
# File 'lib/jack/version_checker.rb', line 5

def run
  leave("eb cli tool is not installed") unless system("type eb > /dev/null 2>&1")
  leave("eb version is too low") unless check
end