Sha256: 410c58d476f995dfc5d050444c4f3dc864adf50bda3947f3b947fc07533095ec

Contents?: true

Size: 786 Bytes

Versions: 4

Compression:

Stored size: 786 Bytes

Contents

module LitmusPaper
  module Metric
    class AvailableMemory
      MULTIPLIER = {
        "GB" => 1024*1024*1024,
        "MB" => 1024*1024,
        "KB" => 1024
      }

      def initialize(weight, facter = Facter)
        @weight = weight
        @facter = facter
      end

      def current_health
        @weight * memory_free / memory_total
      end

      def memory_total
        return @memory_total unless @memory_total.nil?

        size, scale = @facter.value('memorytotal').split(' ')
        @memory_total = size.to_i * MULTIPLIER[scale]
      end

      def memory_free
        size, scale = @facter.value('memoryfree').split(' ')
        size.to_i * MULTIPLIER[scale]
      end

      def to_s
        "Metric::AvailableMemory(#{@weight})"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
litmus_paper-0.3.1 lib/litmus_paper/metric/available_memory.rb
litmus_paper-0.3.0 lib/litmus_paper/metric/available_memory.rb
litmus_paper-0.1.0 lib/litmus_paper/metric/available_memory.rb
litmus_paper-0.0.3 lib/litmus_paper/metric/available_memory.rb