BathHacked/energy-sparks

View on GitHub
app/classes/targets/fuel_progress.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Targets
  class FuelProgress
    attr_reader :fuel_type, :progress, :usage, :target, :recent_data

    def initialize(fuel_type:, progress:, usage:, target:, recent_data: true)
      @fuel_type = fuel_type
      @progress = progress
      @usage = usage
      @target = target
      @recent_data = recent_data
    end

    def progress_formatted
      FormatEnergyUnit.format(:relative_percent, @progress, :html, false, true, :target) unless progress.nil?
    end

    def recent_data?
      @recent_data
    end

    def valid?
      @usage.present? && @target.present?
    end

    # TODO improve so we have ways to check for achieving and exceeding
    def achieving_target?
      @target.present? && @progress.present? && @progress <= 0
    end
  end
end