Sha256: c0c6124252bef2745e30de5300b99774e4ec4f3d0ac1a28db98cb30fa8fa8b2e

Contents?: true

Size: 1.07 KB

Versions: 23

Compression:

Stored size: 1.07 KB

Contents

module Mspire

  UserParam = Struct.new(:name, :value, :type, :unit)

  class UserParam

    # returns nil
    def accession
      # that way all params can be queried by accession and not raise error
      nil
    end

    # takes a few different incantations:
    #
    #     name, unit_acc# or CV::Param object
    #     name, value, unit_acc# or CV::Param object
    #     name, value, type, unit_acc# or CV::Param object
    def initialize(*args)
      self.unit = 
        if args.size > 1 && ((args.last.is_a?(::CV::Param) || args.last =~ /^[A-Za-z]+:\d+$/))
          unit_arg = args.pop
          unit_arg.is_a?(::CV::Param) ? unit_arg : Mspire::CV::Param[unit_arg]
        end
      self.name, self.value, self.type = args
    end

    def to_xml(xml)
      atts = { name: name, value: value, type: type }
      if unit
        atts.merge!( 
                    { :unitCvRef => unit.cv_ref, 
                      :unitAccession => unit.accession,
                      :unitName => unit.name } 
                   )
      end
      xml.userParam(atts)
      xml
    end

  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
mspire-0.10.8.0 lib/mspire/user_param.rb
mspire-0.10.7.3 lib/mspire/user_param.rb
mspire-0.10.7.2 lib/mspire/user_param.rb
mspire-0.10.7.1 lib/mspire/user_param.rb
mspire-0.10.7 lib/mspire/user_param.rb
mspire-0.10.6 lib/mspire/user_param.rb
mspire-0.10.5 lib/mspire/user_param.rb
mspire-0.10.4 lib/mspire/user_param.rb
mspire-0.10.3 lib/mspire/user_param.rb
mspire-0.10.2 lib/mspire/user_param.rb
mspire-0.10.1 lib/mspire/user_param.rb
mspire-0.10.0 lib/mspire/user_param.rb
mspire-0.9.2 lib/mspire/user_param.rb
mspire-0.9.1 lib/mspire/user_param.rb
mspire-0.9.0 lib/mspire/user_param.rb
mspire-0.8.7 lib/mspire/user_param.rb
mspire-0.8.6.2 lib/mspire/user_param.rb
mspire-0.8.6.1 lib/mspire/user_param.rb
mspire-0.8.6 lib/mspire/user_param.rb
mspire-0.8.5 lib/mspire/user_param.rb