module Skein::Support

Public Class Methods

arrayify(value) click to toggle source
# File lib/skein/support.rb, line 18
def self.arrayify(value)
  case (value)
  when nil
    nil
  when Array
    value
  else
    [ value ]
  end
end
hash_format(hash, width: nil) click to toggle source
# File lib/skein/support.rb, line 29
def self.hash_format(hash, width: nil)
  hash = hash.to_h

  width ||= hash.keys.map(&:length).sort[-1].to_i + 1

  template = "%%-%ds %%s" % [ width ]

  hash.map do |pair|
    template % pair
  end
end
hostname() click to toggle source

Module Methods =======================================================

# File lib/skein/support.rb, line 6
def self.hostname
  Socket.gethostname
end
process_id() click to toggle source
# File lib/skein/support.rb, line 14
def self.process_id
  Process.pid
end
process_name() click to toggle source
# File lib/skein/support.rb, line 10
def self.process_name
  $0.split(/\s/).first.split('/').last.sub(/\.rb\z/, '')
end
symbolize_keys(hash) click to toggle source
# File lib/skein/support.rb, line 41
def self.symbolize_keys(hash)
  case (hash)
  when Hash
    Hash[
      hash.map do |k,v|
        [
          k.to_s.to_sym,
          case (v)
          when Hash
            symbolize_keys(v)
          when Array
            v.map { |e| symbolize_keys(e) }
          else
            v
          end
        ]
      end
    ]
  when Array
    hash.map do |h|
      symbolize_keys(h)
    end
  else
    hash
  end
end