Sha256: 08ec6d5174eec7d2a43f910e42ee51d1314f71a785ae74bb490490fda79d20ea

Contents?: true

Size: 668 Bytes

Versions: 4

Compression:

Stored size: 668 Bytes

Contents

# frozen_string_literal: true

module Boppers
  class Uptime
    module RelativeTime
      def self.call(from_time, to_time)
        seconds = (to_time - from_time).to_i
        return plural(seconds, "second") if seconds < 60

        minutes = (seconds / 60).to_i
        return plural(minutes, "minute") if minutes < 60

        hours = (minutes / 60).to_i
        return plural(hours, "hour") if hours < 24

        days = (hours / 24).to_i
        plural(days, "day")
      end

      def self.plural(count, one, many = "#{one}s")
        if count == 1
          "#{count} #{one}"
        else
          "#{count} #{many}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
boppers-uptime-0.1.3 lib/boppers/uptime/relative_time.rb
boppers-uptime-0.1.2 lib/boppers/uptime/relative_time.rb
boppers-uptime-0.1.1 lib/boppers/uptime/relative_time.rb
boppers-uptime-0.1.0 lib/boppers/uptime/relative_time.rb