Module: BioTable::Rewrite

Defined in:
lib/bio-table/rewrite.rb

Class Method Summary collapse

Class Method Details

.rewrite(code, rowname, field) ⇒ Object

Rewrite fields. Both field and fields can be used, but not at the same time.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bio-table/rewrite.rb', line 6

def Rewrite::rewrite code, rowname, field
  fields = field.dup
  original = field.dup
  values = LazyValues.new(field)
  value = values
  return rowname,field if not code or code==""
  begin
    eval(code)
  rescue Exception
    $stderr.print "Failed to evaluate ",rowname," ",field," with ",code,"\n"
    raise 
  end
  if (fields & original != fields.uniq) and (field & original != field.uniq)
    $stderr.print [:original,original],"\n"
    $stderr.print [:fields,fields],"\n"
    $stderr.print [:field,field],"\n"
    raise "You can not rewrite both field and fields!"
  end
  field = fields if fields != original
  return rowname,field
end