From 1b3157089a5a86bc771d40c6ba898a2ee71b4bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Thu, 23 Jan 2014 00:30:46 +0100 Subject: [PATCH 1/5] This should add chruby support --- README.md | 21 ++++++++++++--------- RubyTest.sublime-settings | 1 + run_ruby_test.py | 15 ++++++++++----- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index deacfc5..cd2eb99 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,9 @@ Additional Features: ------------------- Below features can be enabled by editing `RubyTest.sublime-settings` +- Chruby autodetect +`"check_for_chruby": true` + - RVM / RBENV auto detect (thx to @bronson) - feature is disabled by default, but if you enable it then be sure that your settings file is configure to use `bundle exec` (refer to https://github.com/maltize/sublime-text-2-ruby-tests#bundler-support) `"check_for_rbenv": true` `"check_for_rvm": true` @@ -95,34 +98,34 @@ Settings: { "erb_verify_command": "erb -xT - {file_name} | ruby -c", "ruby_verify_command": "ruby -c {file_name}", - + "run_ruby_unit_command": "ruby -Itest {relative_path}", "run_single_ruby_unit_command": "ruby -Itest {relative_path} -n '{test_name}'", - + "run_cucumber_command": "cucumber {relative_path}", "run_single_cucumber_command": "cucumber {relative_path} -l{line_number}", - + "run_rspec_command": "rspec {relative_path}", "run_single_rspec_command": "rspec {relative_path} -l{line_number}", - + "ruby_unit_folder": "test", "ruby_cucumber_folder": "features", "ruby_rspec_folder": "spec", - + "check_for_rbenv": false, "check_for_rvm": false, "check_for_bundler": false, "check_for_spring": false, - + "ruby_use_scratch" : false, "save_on_run": false, "ignored_directories": [".git", "vendor", "tmp"], - + "hide_panel": false, - + "before_callback": "", "after_callback": "", - + "theme": "Packages/RubyTest/TestConsole.hidden-tmTheme", "syntax": "Packages/RubyTest/TestConsole.tmLanguage" } diff --git a/RubyTest.sublime-settings b/RubyTest.sublime-settings index f86c09a..3fc962b 100644 --- a/RubyTest.sublime-settings +++ b/RubyTest.sublime-settings @@ -15,6 +15,7 @@ "ruby_cucumber_folder": "features", "ruby_rspec_folder": "spec", + "check_for_chruby": false, "check_for_rbenv": false, "check_for_rvm": false, "check_for_bundler": false, diff --git a/run_ruby_test.py b/run_ruby_test.py index 82bdacf..36ffc6c 100644 --- a/run_ruby_test.py +++ b/run_ruby_test.py @@ -131,11 +131,12 @@ def load_config(self): global SYNTAX; SYNTAX = s.get('syntax') global THEME; THEME = s.get('theme') - - rbenv = s.get("check_for_rbenv") - rvm = s.get("check_for_rvm") - bundler = s.get("check_for_bundler") - spring = s.get("check_for_spring") + chruby = s.get("check_for_chruby") + rbenv = s.get("check_for_rbenv") + rvm = s.get("check_for_rvm") + bundler = s.get("check_for_bundler") + spring = s.get("check_for_spring") + if chruby: self.chruby() if rbenv or rvm: self.rbenv_or_rvm(s, rbenv, rvm) if spring: self.spring_support() if bundler: self.bundler_support() @@ -144,6 +145,10 @@ def spring_support(self): global COMMAND_PREFIX COMMAND_PREFIX = COMMAND_PREFIX + " spring " + def chruby(self): + global COMMAND_PREFIX + COMMAND_PREFIX = 'source /usr/local/opt/chruby/share/chruby/chruby.sh && chruby `[ -f .ruby-version ] && cat .ruby-version || ruby` &&' + def rbenv_or_rvm(self, s, rbenv, rvm): which = os.popen('which rbenv').read().split('\n')[0] brew = '/usr/local/bin/rbenv' From 60e10d9be5bf29bc2cf9cd06d04fe40cd4a5a1b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Thu, 23 Jan 2014 00:49:37 +0100 Subject: [PATCH 2/5] Cleanup --- README.md | 6 ++---- run_ruby_test.py | 24 +++++++++++------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index cd2eb99..f9e7431 100644 --- a/README.md +++ b/README.md @@ -68,10 +68,8 @@ Additional Features: ------------------- Below features can be enabled by editing `RubyTest.sublime-settings` -- Chruby autodetect -`"check_for_chruby": true` - -- RVM / RBENV auto detect (thx to @bronson) - feature is disabled by default, but if you enable it then be sure that your settings file is configure to use `bundle exec` (refer to https://github.com/maltize/sublime-text-2-ruby-tests#bundler-support) +- CHRUBY / RVM / RBENV auto detect (thx to @bronson) - feature is disabled by default, but if you enable it then be sure that your settings file is configure to use `bundle exec` (refer to https://github.com/maltize/sublime-text-2-ruby-tests#bundler-support) + `"check_for_chruby: true` `"check_for_rbenv": true` `"check_for_rvm": true` diff --git a/run_ruby_test.py b/run_ruby_test.py index 36ffc6c..a7eae1d 100644 --- a/run_ruby_test.py +++ b/run_ruby_test.py @@ -131,13 +131,12 @@ def load_config(self): global SYNTAX; SYNTAX = s.get('syntax') global THEME; THEME = s.get('theme') - chruby = s.get("check_for_chruby") - rbenv = s.get("check_for_rbenv") - rvm = s.get("check_for_rvm") - bundler = s.get("check_for_bundler") - spring = s.get("check_for_spring") - if chruby: self.chruby() - if rbenv or rvm: self.rbenv_or_rvm(s, rbenv, rvm) + chruby = s.get("check_for_chruby") + rbenv = s.get("check_for_rbenv") + rvm = s.get("check_for_rvm") + bundler = s.get("check_for_bundler") + spring = s.get("check_for_spring") + if chruby or rbenv or rvm: self.rbenv_or_rvm(s, chruby, rbenv, rvm) if spring: self.spring_support() if bundler: self.bundler_support() @@ -145,13 +144,10 @@ def spring_support(self): global COMMAND_PREFIX COMMAND_PREFIX = COMMAND_PREFIX + " spring " - def chruby(self): - global COMMAND_PREFIX - COMMAND_PREFIX = 'source /usr/local/opt/chruby/share/chruby/chruby.sh && chruby `[ -f .ruby-version ] && cat .ruby-version || ruby` &&' - - def rbenv_or_rvm(self, s, rbenv, rvm): + def rbenv_or_rvm(self, s, chruby, rbenv, rvm): which = os.popen('which rbenv').read().split('\n')[0] brew = '/usr/local/bin/rbenv' + chruby_cmd = os.path.expanduser('source /usr/local/opt/chruby/share/chruby/chruby.sh && chruby') rbenv_cmd = os.path.expanduser('~/.rbenv/bin/rbenv') rvm_cmd = os.path.expanduser('~/.rvm/bin/rvm-auto-ruby') @@ -159,7 +155,9 @@ def rbenv_or_rvm(self, s, rbenv, rvm): elif os.path.isfile(which): rbenv_cmd = which global COMMAND_PREFIX - if rbenv and self.is_executable(rbenv_cmd): + if chruby and self.is_executable(chruby_cmd): + COMMAND_PREFIX = chruby_cmd + ' `[ -f .ruby-version ] && cat .ruby-version || ruby` &&' + elif rbenv and self.is_executable(rbenv_cmd): COMMAND_PREFIX = rbenv_cmd + ' exec' elif rvm and self.is_executable(rvm_cmd): COMMAND_PREFIX = rvm_cmd + ' -S' From 7b01037fa9868fada60c79618082aed959e30ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Mon, 27 Jan 2014 23:47:33 +0100 Subject: [PATCH 3/5] Forgot about that chruby thing --- run_ruby_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run_ruby_test.py b/run_ruby_test.py index a7eae1d..dd97530 100644 --- a/run_ruby_test.py +++ b/run_ruby_test.py @@ -136,7 +136,7 @@ def load_config(self): rvm = s.get("check_for_rvm") bundler = s.get("check_for_bundler") spring = s.get("check_for_spring") - if chruby or rbenv or rvm: self.rbenv_or_rvm(s, chruby, rbenv, rvm) + if chruby or rbenv or rvm: self.chruby_rbenv_or_rvm(s, chruby, rbenv, rvm) if spring: self.spring_support() if bundler: self.bundler_support() @@ -144,7 +144,7 @@ def spring_support(self): global COMMAND_PREFIX COMMAND_PREFIX = COMMAND_PREFIX + " spring " - def rbenv_or_rvm(self, s, chruby, rbenv, rvm): + def chruby_rbenv_or_rvm(self, s, chruby, rbenv, rvm): which = os.popen('which rbenv').read().split('\n')[0] brew = '/usr/local/bin/rbenv' chruby_cmd = os.path.expanduser('source /usr/local/opt/chruby/share/chruby/chruby.sh && chruby') From 0d0e87629460f4ece0efc8abae7f5c5262bf843d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Mon, 27 Jan 2014 23:50:10 +0100 Subject: [PATCH 4/5] Missing readme entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9e7431..67a1342 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Settings: "ruby_cucumber_folder": "features", "ruby_rspec_folder": "spec", + "check_for_chruby": false, "check_for_rbenv": false, "check_for_rvm": false, "check_for_bundler": false, From 65e959e117eab641690cc5ec1bbfec843cb9bcb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Mon, 27 Jan 2014 23:54:35 +0100 Subject: [PATCH 5/5] Little refactor --- run_ruby_test.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/run_ruby_test.py b/run_ruby_test.py index dd97530..02d1963 100644 --- a/run_ruby_test.py +++ b/run_ruby_test.py @@ -145,14 +145,16 @@ def spring_support(self): COMMAND_PREFIX = COMMAND_PREFIX + " spring " def chruby_rbenv_or_rvm(self, s, chruby, rbenv, rvm): - which = os.popen('which rbenv').read().split('\n')[0] - brew = '/usr/local/bin/rbenv' chruby_cmd = os.path.expanduser('source /usr/local/opt/chruby/share/chruby/chruby.sh && chruby') + + which_rbenv = os.popen('which rbenv').read().split('\n')[0] + brew_rbenv = '/usr/local/bin/rbenv' rbenv_cmd = os.path.expanduser('~/.rbenv/bin/rbenv') + rvm_cmd = os.path.expanduser('~/.rvm/bin/rvm-auto-ruby') - if os.path.isfile(brew): rbenv_cmd = brew - elif os.path.isfile(which): rbenv_cmd = which + if os.path.isfile(brew_rbenv): rbenv_cmd = brew_rbenv + elif os.path.isfile(which_rbenv): rbenv_cmd = which_rbenv global COMMAND_PREFIX if chruby and self.is_executable(chruby_cmd):