Sha256: 8d57329a547acd1a676351ae2ff095e1cc8c666f81154d5753b321a798f48bfd
Contents?: true
Size: 1.28 KB
Versions: 6
Compression:
Stored size: 1.28 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] ||= [] @storage[command] end end def initialize(value = nil) @map = CommandHash.new(value || defaults) end def [](command) if prefix[command].any? prefixes = prefix[command].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
6 entries across 4 versions & 2 rubygems