Sha256: 80a3766ac3be1125ee79622a81d0247d31d155caccd32d0199c73455a9c20ef9

Contents?: true

Size: 791 Bytes

Versions: 3

Compression:

Stored size: 791 Bytes

Contents

module Adhoq
  class Report < ActiveRecord::Base
    belongs_to :execution

    delegate :name, to: 'execution'

    def generate!(storage = Adhoq.current_storage)
      self.identifier   = generate_and_persist_report!(storage)
      self.generated_at = Time.now
      self.storage      = storage.identifier

      save!
    end

    def available?
      identifier.present? && (storage == Adhoq.current_storage.identifier)
    end

    def data(storage = Adhoq.current_storage)
      storage.get(identifier)
    end

    def mime_type
      Adhoq::Reporter.lookup(execution.report_format).mime_type
    end

    private

    def generate_and_persist_report!(storage)
      storage.store(".#{execution.report_format}") {
        Adhoq::Reporter.generate(execution)
      }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
adhoq-0.0.5 app/models/adhoq/report.rb
adhoq-0.0.4 app/models/adhoq/report.rb
adhoq-0.0.3 app/models/adhoq/report.rb