Class: Travis::Tools::Formatter

Inherits:
Object
  • Object
show all
Defined in:
lib/travis/tools/formatter.rb

Constant Summary collapse

DAY =
24 * 60 * 60
TIME_FORMAT =
"%Y-%m-%d %H:%M:%S"
CONFIG_KEYS =
['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala', 'compiler', 'os']

Instance Method Summary collapse

Instance Method Details

#duration(seconds, suffix = nil) ⇒ Object


10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/travis/tools/formatter.rb', line 10

def duration(seconds, suffix = nil)
  return "none" if seconds.nil?
  seconds          = (Time.now - seconds).to_i if seconds.is_a? Time
  output           = []
  minutes, seconds = seconds.divmod(60)
  hours, minutes   = minutes.divmod(60)
  output << "#{hours  } hrs" if hours > 0
  output << "#{minutes} min" if minutes > 0
  output << "#{seconds} sec" if seconds > 0 or output.empty?
  output << suffix           if suffix
  output.join(" ")
end

#file_size(input, human = true) ⇒ Object


23
24
25
26
27
28
29
30
31
32
33
# File 'lib/travis/tools/formatter.rb', line 23

def file_size(input, human = true)
  return "#{input} B" unless human
  format = "B"
  iec    = %w[KiB MiB GiB TiB PiB EiB ZiB YiB]
  while human and input > 512 and iec.any?
    input /= 1024.0
    format = iec.shift
  end
  input = input.round(2) if input.is_a? Float
  "#{input} #{format}"
end

#job_config(config) ⇒ Object


41
42
43
44
45
46
47
# File 'lib/travis/tools/formatter.rb', line 41

def job_config(config)
  output = []
  config.each_pair do |key, value|
    output << "#{key}: #{value}" if CONFIG_KEYS.include? key
  end
  output.join(", ")
end

#time(time) ⇒ Object


35
36
37
38
39
# File 'lib/travis/tools/formatter.rb', line 35

def time(time)
  return "not yet" if time.nil? # or time > Time.now
  #return duration(time, "ago") if Time.now - time < DAY
  time.localtime.strftime(TIME_FORMAT)
end