Class: Braid::Operations::Proxy

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Includes:
Singleton
Defined in:
lib/braid/operations.rb

Overview

The command proxy is meant to encapsulate commands such as git, that work with subcommands.

Direct Known Subclasses

Git

Class Method Summary collapse

Instance Method Summary collapse

Methods included from T::Sig

sig

Class Method Details

.commandObject

Raises:



84
85
86
# File 'lib/braid/operations.rb', line 84

def self.command
  raise InternalError, 'Proxy.command not overridden'
end

Instance Method Details

#require_version(required) ⇒ Object



96
97
98
99
100
101
102
# File 'lib/braid/operations.rb', line 96

def require_version(required)
  # Gem::Version is intended for Ruby gem versions, but various web sites
  # suggest it as a convenient way of comparing version strings in
  # general.  None of the fine points of its semantics compared to those
  # of Git version numbers seem likely to cause a problem for Braid.
  Gem::Version.new(version) >= Gem::Version.new(required)
end

#require_version!(required) ⇒ Object



105
106
107
# File 'lib/braid/operations.rb', line 105

def require_version!(required)
  require_version(required) || raise(VersionTooLow.new(self.class.command, version, required))
end

#versionObject



90
91
92
93
# File 'lib/braid/operations.rb', line 90

def version
  _, out, _ = exec!([self.class.command, '--version'])
  out.sub(/^.* version/, '').strip.sub(/ .*$/, '').strip
end