Sha256: 4aa3243b47b89642dec801efee1c9af782e7a1304c028be33c58f3feb9bf36a3

Contents?: true

Size: 1.11 KB

Versions: 4

Compression:

Stored size: 1.11 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
      }
      
      units[unit].to_nsec * value
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yam-ruby-metrics-0.8.9 lib/ruby-metrics/time_units.rb
yam-ruby-metrics-0.8.8 lib/ruby-metrics/time_units.rb
yam-ruby-metrics-0.8.7 lib/ruby-metrics/time_units.rb
yam-ruby-metrics-0.8.6 lib/ruby-metrics/time_units.rb