Sha256: 18445f7f9b59a5ae043168453d528845fedd34c0d3c822eefcc5fa03f02e3495
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 KB
Contents
module SSHKit class CommandMap class CommandHash def initialize(defaults = {}) @storage = {} @defaults = defaults end def [](key) @storage[normalize_key(key)] ||= @defaults[key] end def []=(key, value) @storage[normalize_key(key)] = value end private def normalize_key(key) key.to_sym end end class PrefixProvider def initialize @storage = CommandHash.new end def [](command) @storage[command] ||= [] end end def initialize(value = nil) @map = CommandHash.new(value || defaults) end def [](command) if prefix[command].any? prefixes = prefix[command].map{ |prefix| prefix.respond_to?(:call) ? prefix.call : prefix } prefixes = prefixes.join(" ") "#{prefixes} #{command}" else @map[command] end end def prefix @prefix ||= PrefixProvider.new end def []=(command, new_command) @map[command] = new_command end def clear @map = CommandHash.new(defaults) end def defaults Hash.new do |hash, command| if %w{if test time}.include? command.to_s hash[command] = command.to_s else hash[command] = "/usr/bin/env #{command}" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sshkit-1.9.0 | lib/sshkit/command_map.rb |
sshkit-1.9.0.rc1 | lib/sshkit/command_map.rb |