class MesaReader::MesaProfileIndex

MesaProfileIndex class provides easy access to the data in a mesa profile index file. It is meant primarily as a helper class to the MesaLogDir class but can stand on its own.

EXAMPLES:

>>> include MesaReader >>> index = MesaProfileIndex.new('~/mesa/star/work/LOGS/profiles.index') >>> index.model_numbers # => Sorted Dvector of model numbers that have

available profiles

>>> index.profile_numbers # => Dvector of profile numbers ordered by model

number

>>> index.have_profile_with_model_number?(num) # => true if there is a

profile corresponding to model number number. false otherwise

>>> index.have_profile_with_profile_number?(num) # => true if there is a

profile with profile number num

>>> index.profile_with_model_number(num) # => profile number (integer) that

corresponds to model number num. If there is none, returns nil

Attributes

model_number_hash[R]
model_numbers[R]
priorities[R]
profile_number_hash[R]
profile_numbers[R]

Public Class Methods

new(filename) click to toggle source
# File lib/mesa_reader.rb, line 194
def initialize(filename)
  @model_numbers = Dobjects::Dvector.new
  @priorities = Dobjects::Dvector.new
  @profile_numbers = Dobjects::Dvector.new
  data_array = [model_numbers, priorities, profile_numbers]
  Dobjects::Dvector.read(filename, data_array, 2)
  @model_number_hash = {}
  model_numbers.each_with_index do |num, i|
    @model_number_hash[num.to_i] = profile_numbers[i].to_i
  end
  @profile_number_hash = model_number_hash.invert
  @profile_numbers.sort! do |num1, num2|
    profile_number_hash[num1.to_i] <=> profile_number_hash[num2.to_i]
  end
  @model_numbers.sort!
end

Public Instance Methods

have_profile_with_model_number?(model_number) click to toggle source
# File lib/mesa_reader.rb, line 210
def have_profile_with_model_number?(model_number)
  model_numbers.include?(model_number)
end
have_profile_with_profile_number?(profile_number) click to toggle source
# File lib/mesa_reader.rb, line 213
def have_profile_with_profile_number?(profile_number)
  profile_numbers.include?(profile_number)
end
profile_with_model_number(model_number) click to toggle source
# File lib/mesa_reader.rb, line 216
def profile_with_model_number(model_number)
  model_number_hash[model_number]
end