Sha256: 2fd66ff8e016858029de7f9bc615c7d215c19aba6a3f3acabe43290995f1be75

Contents?: true

Size: 1.43 KB

Versions: 9

Compression:

Stored size: 1.43 KB

Contents

require 'mspire/cv/paramable'

module Mspire
  class Mzml
    class Run
      include Mspire::CV::Paramable

      # required
      attr_accessor :default_instrument_configuration

      # optional
      attr_accessor :default_source_file

      # required
      attr_accessor :id

      # optional
      attr_accessor :sample

      # optional
      attr_accessor :start_time_stamp

      # a SpectrumList object (a special array of spectra)
      attr_accessor :spectrum_list

      # takes a ChromatogramList object (a special array of chromatograms)
      attr_accessor :chromatogram_list

      # yields self if given a block
      def initialize(id, default_instrument_configuration, opts={params: []}, &block)
        @id = id
        @default_instrument_configuration = default_instrument_configuration
        super(opts)
        block.call(self) if block
      end

      def to_xml(builder)
        atts = { id: @id,
          defaultInstrumentConfigurationRef: @default_instrument_configuration.id
        }
        atts[:defaultSourceFileRef] = @default_source_file.id if @default_source_file
        atts[:sampleRef] = @sample.id if @sample
        atts[:startTimeStamp] = @start_time_stamp if @start_time_stamp
        
        builder.run(atts) do |run_n|
          super(run_n)
          spectrum_list.to_xml(run_n) if spectrum_list
          chromatogram_list.to_xml(run_n) if chromatogram_list
        end
        builder
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mspire-0.7.18 lib/mspire/mzml/run.rb
mspire-0.7.17 lib/mspire/mzml/run.rb
mspire-0.7.13 lib/mspire/mzml/run.rb
mspire-0.7.12 lib/mspire/mzml/run.rb
mspire-0.7.11 lib/mspire/mzml/run.rb
mspire-0.7.10 lib/mspire/mzml/run.rb
mspire-0.7.9 lib/mspire/mzml/run.rb
mspire-0.7.8 lib/mspire/mzml/run.rb
mspire-0.7.7 lib/mspire/mzml/run.rb