Sha256: 40e0447fa9f1f402d0c6bd4a14690c22c66fd2891ca57d2a34b5bcfbde0164bf

Contents?: true

Size: 922 Bytes

Versions: 9

Compression:

Stored size: 922 Bytes

Contents

# frozen_string_literal: true

module Decidim
  # This class executes some measures related to Metrics, and return its results
  #
  #  - day: Date object
  #  - resource: Object used to make measurements. Object class is dependent within each measure
  class MetricMeasure
    def initialize(day, resource)
      @day = day.try(:to_date) || Time.zone.yesterday
      raise ArgumentError, "[ERROR] Malformed `day` argument. Format must be `YYYY-MM-DD` and in the past" if @day > Time.zone.today

      @day ||= Time.zone.yesterday
      @resource = resource
    end

    def valid?
      @day.present? && @resource.present?
    end

    # this method must be overwritten for each Measure class
    def calculate
      raise StandardError, "Not implemented"
    end

    private

    def start_time
      @start_time ||= @day.beginning_of_day
    end

    def end_time
      @end_time ||= @day.end_of_day
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc2 app/queries/decidim/metric_measure.rb
decidim-core-0.30.0.rc1 app/queries/decidim/metric_measure.rb
decidim-core-0.29.2 app/queries/decidim/metric_measure.rb
decidim-core-0.29.1 app/queries/decidim/metric_measure.rb
decidim-core-0.29.0 app/queries/decidim/metric_measure.rb
decidim-core-0.29.0.rc4 app/queries/decidim/metric_measure.rb
decidim-core-0.29.0.rc3 app/queries/decidim/metric_measure.rb
decidim-core-0.29.0.rc2 app/queries/decidim/metric_measure.rb
decidim-core-0.29.0.rc1 app/queries/decidim/metric_measure.rb