Module: Skein::Support

Defined in:
lib/skein/support.rb

Class Method Summary collapse

Class Method Details

.arrayify(value) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# 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) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# 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

.hostnameObject

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



6
7
8
# File 'lib/skein/support.rb', line 6

def self.hostname
  Socket.gethostname
end

.process_idObject



14
15
16
# File 'lib/skein/support.rb', line 14

def self.process_id
  Process.pid
end

.process_nameObject



10
11
12
# File 'lib/skein/support.rb', line 10

def self.process_name
  $0.split(/\s/).first.split('/').last.sub(/\.rb\z/, '')
end

.symbolize_keys(hash) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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