Sha256: f3564a0d8da6bb260d634f76d8fb0f18f67c84e5a543304c422b6282ace19920

Contents?: true

Size: 555 Bytes

Versions: 7

Compression:

Stored size: 555 Bytes

Contents

module SystemMetrics
  class Collector
    attr_reader :store

    def initialize(store)
      @store = store
    end

    def collect_event(event)
      events.push event if SystemMetrics.collecting?
    end

    def collect
      events.clear
      SystemMetrics.collection_on
      result = yield
      SystemMetrics.collection_off
      store.save events.dup
      result
    ensure
      SystemMetrics.collection_off
      events.clear
    end

    private

      def events
        Thread.current[:system_metrics_events] ||= []
      end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
system-metrics-0.2.5 lib/system_metrics/collector.rb
system-metrics-0.2.4 lib/system_metrics/collector.rb
system-metrics-0.2.3 lib/system_metrics/collector.rb
system-metrics-0.2.2 lib/system_metrics/collector.rb
system-metrics-0.2.1 lib/system_metrics/collector.rb
system-metrics-0.2.0 lib/system_metrics/collector.rb
system-metrics-0.1.0 lib/system_metrics/collector.rb