Sha256: 51f3eb3567d0ddb9d799dad4cf6fcbee4bf517183641a3dcb929b13913deb057

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

module Metrics
  
  class TimeUnit 
    def self.to_nsec(mult = 1)
      raise NotImplementedError
    end
  end
  
  class Nanoseconds < TimeUnit
    def self.to_nsec(mult = 1)
      mult
    end
  end
  
  class Microseconds < TimeUnit
    def self.to_nsec(mult = 1)
      1000 * mult
    end
  end
  
  class Milliseconds < TimeUnit
    def self.to_nsec(mult = 1)
      1000000 * mult
    end
  end
  
  class Seconds < TimeUnit
    def self.to_nsec(mult = 1)
      1000000000 * mult
    end
  end
  
  class Minutes < TimeUnit
    def self.to_nsec(mult = 1)
      60000000000 * mult
    end
  end
  
  class Hours < TimeUnit
    def self.to_nsec(mult = 1)
      3600000000000 * mult
    end
  end
  
  module TimeConversion
   
  
    def convert_to_ns(value, unit)
      units = {
          :nanoseconds            => Nanoseconds,
          :microseconds           => Microseconds,
          :milliseconds           => Milliseconds,
          :seconds                => Seconds,
          :minutes                => Minutes,
          :hours                  => Hours
      }
      
      return units[unit].to_nsec * value
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-metrics-0.8.6 lib/ruby-metrics/time_units.rb
ruby-metrics-0.8.5 lib/ruby-metrics/time_units.rb
ruby-metrics-0.8.0 lib/ruby-metrics/time_units.rb
ruby-metrics-0.7.0 lib/ruby-metrics/time_units.rb