class String

MiGA extensions to the String class.

Public Instance Methods

miga_name() click to toggle source

Replace any character not allowed in a MiGA name for underscore (_). This results in a MiGA-compliant name EXCEPT for empty strings, that results in empty strings.

# File lib/miga/common/format.rb, line 140
def miga_name
  gsub(/[^A-Za-z0-9_]/, '_')
end
miga_name?() click to toggle source

Is the string a MiGA-compliant name?

# File lib/miga/common/format.rb, line 146
def miga_name?
  !(self !~ /^[A-Za-z0-9_]+$/)
end
miga_variables(vars) click to toggle source

Replace {{variables}} using the vars hash

# File lib/miga/common/format.rb, line 172
def miga_variables(vars)
  o = self.dup
  vars.each { |k, v| o.gsub!("{{#{k}}}", v.to_s) }
  o
end
unmiga_name() click to toggle source

Replace underscores by spaces or other symbols depending on context

# File lib/miga/common/format.rb, line 152
def unmiga_name
  gsub(/_(str|sp|subsp|pv)__/, '_\1._')
    .gsub(/g_c_(content)/, 'G+C \1')
    .gsub(/g_c_(skew)/, 'G-C \1')
    .gsub(/a_t_(skew)/, 'A-T \1')
    .gsub(/x_content/, &:capitalize)
    .gsub(/(^|_)([sl]su|a[an]i)(_|$)/, &:upcase)
    .gsub(/^trna_/, 'tRNA ')
    .gsub(/tRNA aa/, 'tRNA AA')
    .tr('_', ' ')
end
wrap_width(width) click to toggle source

Wraps the string with fixed Integer width.

# File lib/miga/common/format.rb, line 166
def wrap_width(width)
  gsub(/([^\n\r]{1,#{width}})/, "\\1\n")
end