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, git-svn and svn, that work with subcommands.
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
84
85
86
|
# File 'lib/braid/operations.rb', line 84
def method_missing(name, *args)
invoke(name, *args)
end
|
Class Method Details
.command ⇒ Object
41
|
# File 'lib/braid/operations.rb', line 41
def self.command; name.split('::').last.downcase; end
|
Instance Method Details
#require_version(required) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/braid/operations.rb', line 48
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
70
71
72
|
# File 'lib/braid/operations.rb', line 70
def require_version!(required)
require_version(required) || raise(VersionTooLow.new(self.class.command, version))
end
|
#version ⇒ Object
43
44
45
46
|
# File 'lib/braid/operations.rb', line 43
def version
status, out, err = exec!("#{self.class.command} --version")
out.sub(/^.* version/, "").strip
end
|