Sha256: 031351d208076327aa74344e5cc3d4f866dca37d78a485b524b0b88c6cd4b47d

Contents?: true

Size: 1.18 KB

Versions: 8

Compression:

Stored size: 1.18 KB

Contents

require 'pulse-meter/extensions/enumerable'

module PulseMeter
  module Mixins
    # Mixin with command-line utilities
    module Cmd
      def with_redis
        PulseMeter.redis = create_redis
        yield
      end

      def with_safe_restore_of(name, &block)
        with_redis do
          sensor = PulseMeter::Sensor::Base.restore(name)
          block.call(sensor)
        end
      rescue PulseMeter::RestoreError
        fail! "Sensor #{name} is unknown or cannot be restored"
      end

      def all_sensors
        PulseMeter::Sensor::Timeline.list_objects
      end

      def all_sensors_table(format = nil)
        data = [
          ["Name", "Class", "ttl", "raw data ttl", "interval", "reduce delay"],
        ]
        data << :separator unless 'csv' == format.to_s
        all_sensors.each do |s|
          if s.kind_of? PulseMeter::Sensor::Timeline
            data << [s.name, s.class, s.ttl, s.raw_data_ttl, s.interval, s.reduce_delay]
          else
            data << [s.name, s.class] + [''] * 4
          end
        end
        data.to_table(format)
      end

      def fail!(description = nil)
        puts description if description
        exit 1
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pulse-meter-0.4.9 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.8 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.7 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.6 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.5 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.4 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.3 lib/pulse-meter/mixins/cmd.rb
pulse-meter-0.4.2 lib/pulse-meter/mixins/cmd.rb