class Bio::MAF::Struct

Attributes

size[R]

Public Class Methods

new(spec) click to toggle source
# File lib/bio/maf/struct.rb, line 12
def initialize(spec)
  @members = []
  @by_name = {}
  offset = 0
  spec.each do |m_spec|
    m = Member.new(offset, *m_spec)
    @members << m
    @by_name[m.name] = m
    offset += m.size
  end
  @size = offset
end

Public Instance Methods

extractor_fmt(*names) click to toggle source
# File lib/bio/maf/struct.rb, line 29
def extractor_fmt(*names)
  extract = names.collect { |name| @by_name.fetch(name) }
  extract.sort_by! { |m| m.offset }
  fmt = ''
  pos = 0
  extract.each do |member|
    if member.offset != pos
      fmt << "@#{member.offset}"
      pos = member.offset
    end
    fmt << member.fmt
    pos += member.size
  end
  return fmt
end
fmt() click to toggle source
# File lib/bio/maf/struct.rb, line 25
def fmt
  @members.collect { |m| m.fmt }.join('')
end