diff --git a/linter.py b/linter.py index d9e2c46..18ef754 100644 --- a/linter.py +++ b/linter.py @@ -1,18 +1,31 @@ -from SublimeLinter.lint import RubyLinter +from SublimeLinter.lint import Linter + + +class RubyLinter(Linter): + def context_sensitive_executable_path(self, cmd): + # The default implementation will look for a user defined `executable` + # setting. + success, executable = super().context_sensitive_executable_path(cmd) + if success: + return True, executable + + gem_name = cmd[0] if isinstance(cmd, list) else cmd + + if self.settings.get('use_bundle_exec', False): + return True, ['bundle', 'exec', gem_name] + + rvm = self.which('rvm-auto-ruby') + if rvm: + return True, [rvm, '-S', gem_name] + + return False, None class Mdl(RubyLinter): - executable = 'mdl' + cmd = ['mdl', '${temp_file}'] regex = r'^.+?:(?P\d+): (?P(?P[^`]*))' line_col_base = (1, 1) tempfile_suffix = 'md' defaults = { 'selector': 'text.html.markdown' } - - def cmd(self): - """Support bundle-exec.""" - - if self.get_view_settings().get('bundle-exec', False): - return ('bundle', 'exec', self.executable) - return (self.executable_path)