Sha256: 13d5be0716ec4548ef2d41717a554e9e4d12e3c0b4f69c16e13f8a8aa2168593

Contents?: true

Size: 958 Bytes

Versions: 4

Compression:

Stored size: 958 Bytes

Contents

require 'cv/param'
require 'mspire/cv'

module Mspire
  module CV

    # a mass spec related CVParam.  
    class Param < ::CV::Param

      # Takes one of these invocations:
      #
      #     acc_num[, unit_acc_num]
      #     acc_num, value[, unit_acc_num]
      #
      # Where acc_num and unit_acc_num are strings containing valid accession
      # numbers (e.g., 'MS:1000514' or 'UO:0000108').  Note that sometimes units are
      # from obo's other than UO.
      def self.[](*args)
        #puts "param args #{args.inspect}"
        unit = 
          case args.size
          when 1
            nil
          when 2
            Mspire::CV::Param[args.pop] if args.last.is_a?(String) && args.last =~ /^[A-Za-z]+:/
          when 3
            Mspire::CV::Param[args.pop]
          end
        obo_type = args[0][/([A-Za-z]+):/,1]
        self.new(obo_type, args[0], Mspire::CV::Obo[obo_type][args.first], args[1], unit)
      end
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mspire-0.7.5 lib/mspire/cv/param.rb
mspire-0.7.4 lib/mspire/cv/param.rb
mspire-0.7.3 lib/mspire/cv/param.rb
mspire-0.7.2 lib/mspire/cv/param.rb