Sha256: de2ca63f6b5bcf9c1abbf2cc33530cfc184ceff04740911bf96730430309bf07

Contents?: true

Size: 703 Bytes

Versions: 14

Compression:

Stored size: 703 Bytes

Contents

require 'forwardable'

module SequenceServer
  # Create report for the given job.
  #
  # Report is a generic superclass. Programs, like BLAST, must implement their
  # own report subclass.
  class Report
    class << self
      # Generates report for the given job. Returns generated report object.
      #
      # TODO: Dynamic dispatch.
      def generate(job)
        BLAST::Report.new(job)
      end
    end

    # Provide access to global `config` & `logger` services to the report
    # objects.
    extend Forwardable
    def_delegators SequenceServer, :config, :logger

    def initialize(job)
      @job = job
      yield if block_given?
      generate
    end

    attr_reader :job
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
sequenceserver-2.1.0 lib/sequenceserver/report.rb
sequenceserver-2.0.0 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc8 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc7 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc6 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc5 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc4 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc3 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc2 lib/sequenceserver/report.rb
sequenceserver-2.0.0.rc1 lib/sequenceserver/report.rb
sequenceserver-2.0.0.beta4 lib/sequenceserver/report.rb
sequenceserver-2.0.0.beta3 lib/sequenceserver/report.rb
sequenceserver-2.0.0.beta1 lib/sequenceserver/report.rb
sequenceserver-1.1.0.beta12 lib/sequenceserver/report.rb