Sha256: 11689e4fa45edd53eb59249dd3a54d5c4871d9727cc689ba8c92a18df9e94876

Contents?: true

Size: 1.04 KB

Versions: 11

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'yaml' unless defined?(YAML)

require 'lite/ruby/helpers/date_time_helper' unless defined?(Lite::Ruby::DateTimeHelper)

class Time

  include Lite::Ruby::DateTimeHelper

  DEFAULT_STAMP = 'datetime_iso'
  DEFAULT_UNIT = 'year-month-day hour:minute'

  STAMPS =
    YAML.load_file(File.expand_path('formats/time_stamps.yml', File.dirname(__FILE__))).merge(
      YAML.load_file(File.expand_path('formats/date_stamps.yml', File.dirname(__FILE__)))
    ).freeze
  UNITS =
    YAML.load_file(File.expand_path('formats/time_units.yml', File.dirname(__FILE__))).merge(
      YAML.load_file(File.expand_path('formats/date_units.yml', File.dirname(__FILE__)))
    ).freeze

  class << self

    def elapse(verbose: false)
      started_at = monotonic
      yield
      ended_at = monotonic
      runtime = ended_at - started_at
      return runtime unless verbose

      { started_at: started_at, ended_at: ended_at, runtime: runtime }
    end

    def monotonic
      Process.clock_gettime(Process::CLOCK_MONOTONIC)
    end

  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
lite-ruby-2.3.0 lib/lite/ruby/time.rb
lite-ruby-2.2.0 lib/lite/ruby/time.rb
lite-ruby-2.1.0 lib/lite/ruby/time.rb
lite-ruby-2.0.7 lib/lite/ruby/time.rb
lite-ruby-2.0.6 lib/lite/ruby/time.rb
lite-ruby-2.0.5 lib/lite/ruby/time.rb
lite-ruby-2.0.4 lib/lite/ruby/time.rb
lite-ruby-2.0.3 lib/lite/ruby/time.rb
lite-ruby-2.0.2 lib/lite/ruby/time.rb
lite-ruby-2.0.1 lib/lite/ruby/time.rb
lite-ruby-2.0.0 lib/lite/ruby/time.rb