Class: Braid::Operations::Proxy
- Inherits:
-
Object
- Object
- Braid::Operations::Proxy
show all
- 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
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
93
94
95
96
97
98
|
# File 'lib/braid/operations.rb', line 93
def method_missing(name, *args)
T.bind(self, T.untyped)
invoke(name, *args)
end
|
Class Method Details
.command ⇒ Object
60
61
62
|
# File 'lib/braid/operations.rb', line 60
def self.command;
T.unsafe(name).split('::').last.downcase;
end
|
Instance Method Details
#require_version(required) ⇒ Object
70
71
72
73
74
75
76
|
# File 'lib/braid/operations.rb', line 70
def require_version(required)
Gem::Version.new(version) >= Gem::Version.new(required)
end
|
#require_version!(required) ⇒ Object
78
79
80
|
# File 'lib/braid/operations.rb', line 78
def require_version!(required)
require_version(required) || raise(VersionTooLow.new(self.class.command, version, required))
end
|
#version ⇒ Object
65
66
67
68
|
# File 'lib/braid/operations.rb', line 65
def version
_, out, _ = exec!("#{self.class.command} --version")
out.sub(/^.* version/, '').strip.sub(/ .*$/, '').strip
end
|