Sha256: 633ebfb3f779697ebfc49db92cb96792f593b87b5f4112258c7bb13b66762228

Contents?: true

Size: 1002 Bytes

Versions: 12

Compression:

Stored size: 1002 Bytes

Contents

require 'mspire/paramable'
require 'mspire/mzml/list'

module Mspire
  class Mzml
    # order is not an intrinsic property of this object, so it 
    module Component
      include Mspire::Paramable
      # using custom list_xml, so no extend Mspire::Mzml::List

      def initialize
        params_init
        yield(self) if block_given?
      end

      def to_xml(builder, order)
        klass = self.class.to_s.split('::').last
        klass[0] = klass[0].downcase
        builder.tag!(klass, order: order) do |c_n|
          super(c_n)
        end
        builder
      end

      def self.list_xml(components, builder)
        builder.componentList(count: components.size) do |xml_n|
          components.each_with_index do |component, order|
            component.to_xml(xml_n, order)
          end
        end
      end
    end

    class Source
      include Component
    end

    class Analyzer
      include Component
    end

    class Detector
      include Component
    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mspire-0.10.8.0 lib/mspire/mzml/component.rb
mspire-0.10.7.3 lib/mspire/mzml/component.rb
mspire-0.10.7.2 lib/mspire/mzml/component.rb
mspire-0.10.7.1 lib/mspire/mzml/component.rb
mspire-0.10.7 lib/mspire/mzml/component.rb
mspire-0.10.6 lib/mspire/mzml/component.rb
mspire-0.10.5 lib/mspire/mzml/component.rb
mspire-0.10.4 lib/mspire/mzml/component.rb
mspire-0.10.3 lib/mspire/mzml/component.rb
mspire-0.10.2 lib/mspire/mzml/component.rb
mspire-0.10.1 lib/mspire/mzml/component.rb
mspire-0.10.0 lib/mspire/mzml/component.rb