summaryrefslogtreecommitdiff
path: root/lib/system_check/app/ruby_version_check.rb
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2017-05-25 16:16:25 +0200
committerGabriel Mazetto <brodock@gmail.com>2017-05-31 14:33:03 +0200
commit13e88c93956b5b350515b919ef7217a3dccf28ff (patch)
tree7ed964642da19c553697a7c737e11f55d058829e /lib/system_check/app/ruby_version_check.rb
parent45378bdd3aae75cb155677d91be61e3d39f5f515 (diff)
downloadgitlab-ce-13e88c93956b5b350515b919ef7217a3dccf28ff.tar.gz
Refactor gitlab:app:checks to use SystemCheck
Diffstat (limited to 'lib/system_check/app/ruby_version_check.rb')
-rw-r--r--lib/system_check/app/ruby_version_check.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/system_check/app/ruby_version_check.rb b/lib/system_check/app/ruby_version_check.rb
new file mode 100644
index 00000000000..37b4d24aa55
--- /dev/null
+++ b/lib/system_check/app/ruby_version_check.rb
@@ -0,0 +1,27 @@
+module SystemCheck
+ module App
+ class RubyVersionCheck < SystemCheck::BaseCheck
+ set_name -> { "Ruby version >= #{self.required_version} ?" }
+ set_check_pass -> { "yes (#{self.current_version})" }
+
+ def self.required_version
+ @required_version ||= Gitlab::VersionInfo.new(2, 1, 0)
+ end
+
+ def self.current_version
+ @current_version ||= Gitlab::VersionInfo.parse(run_command(%w(ruby --version)))
+ end
+
+ def check?
+ self.class.current_version.valid? && self.class.required_version <= self.class.current_version
+ end
+
+ def show_error
+ try_fixing_it(
+ "Update your ruby to a version >= #{self.class.required_version} from #{self.class.current_version}"
+ )
+ fix_and_rerun
+ end
+ end
+ end
+end