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
97
98
99
|
# File 'lib/braid/operations.rb', line 97
def method_missing(name, *args)
invoke(name, *args)
end
|
Class Method Details
.command ⇒ Object
50
51
52
|
# File 'lib/braid/operations.rb', line 50
def self.command;
name.split('::').last.downcase;
end
|
Instance Method Details
#require_version(required) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/braid/operations.rb', line 60
def require_version(required)
required = required.split('.')
actual = version.split('.')
actual.each_with_index do |actual_piece, idx|
required_piece = required[idx]
return true unless required_piece
case (actual_piece <=> required_piece)
when -1
return false
when 1
return true
when 0
next
end
end
return actual.length >= required.length
end
|
#require_version!(required) ⇒ Object
82
83
84
|
# File 'lib/braid/operations.rb', line 82
def require_version!(required)
require_version(required) || raise(VersionTooLow.new(self.class.command, version, required))
end
|
#version ⇒ Object
55
56
57
58
|
# File 'lib/braid/operations.rb', line 55
def version
status, out, err = exec!("#{self.class.command} --version")
out.sub(/^.* version/, '').strip
end
|