Sha256: 281d230388c11ff6c4863aaf7f0a66ca99eaacbfc73869758d4e9308c8c475ab

Contents?: true

Size: 829 Bytes

Versions: 13

Compression:

Stored size: 829 Bytes

Contents

module Skylight
  module Util
    # A more precise clock
    class Clock

      if Skylight.native?
        def tick
          native_hrtime
        end
      else
        def tick
          now = Time.now
          now.to_i * 1_000_000_000 + now.usec * 1_000
        end
      end

      # TODO: rename to secs
      def absolute_secs
        Time.now.to_i
      end

      # TODO: remove
      def nanos
        tick
      end

      # TODO: remove
      def secs
        nanos / 1_000_000_000
      end

      def self.absolute_secs
        default.absolute_secs
      end

      def self.nanos
        default.nanos
      end

      def self.secs
        default.secs
      end

      def self.default
        @clock ||= Clock.new
      end

      def self.default=(clock)
        @clock = clock
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
skylight-1.7.2 lib/skylight/util/clock.rb
skylight-1.7.1 lib/skylight/util/clock.rb
skylight-1.7.0 lib/skylight/util/clock.rb
skylight-1.6.1 lib/skylight/util/clock.rb
skylight-1.6.0 lib/skylight/util/clock.rb
skylight-1.5.1 lib/skylight/util/clock.rb
skylight-1.5.0 lib/skylight/util/clock.rb
skylight-1.4.4 lib/skylight/util/clock.rb
skylight-1.4.3 lib/skylight/util/clock.rb
skylight-1.4.2 lib/skylight/util/clock.rb
skylight-1.4.1 lib/skylight/util/clock.rb
skylight-1.4.0 lib/skylight/util/clock.rb
skylight-1.4.0.beta.2 lib/skylight/util/clock.rb