Class: BioVcf::VcfRecordInfo
- Inherits:
-
Object
- Object
- BioVcf::VcfRecordInfo
- Defined in:
- lib/bio-vcf/vcfrecord.rb
Instance Method Summary collapse
-
#[]=(k, v) ⇒ Object
Set INFO fields (used by –rewrite).
-
#initialize(s) ⇒ VcfRecordInfo
constructor
A new instance of VcfRecordInfo.
- #method_missing(m, *args, &block) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(s) ⇒ VcfRecordInfo
Returns a new instance of VcfRecordInfo.
4 5 6 |
# File 'lib/bio-vcf/vcfrecord.rb', line 4 def initialize s @info = s end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/bio-vcf/vcfrecord.rb', line 24 def method_missing(m, *args, &block) # split_fields if not @h # /#{m}=(?<value>[^;])/.@info v = if @h @h[m.to_s.upcase] else @info =~ /#{m.to_s}=([^;]+)/i value = $1 # p [m,value] # m = @info.match(/#{m.to_s.upcase}=(?<value>[^;]+)/) slower! # value = m[:value] if value == nil split_fields # no option but to split @h[m.to_s.upcase] else value end end ConvertStringToValue::convert(v) end |
Instance Method Details
#[]=(k, v) ⇒ Object
Set INFO fields (used by –rewrite)
17 18 19 20 21 22 |
# File 'lib/bio-vcf/vcfrecord.rb', line 17 def []= k, v split_fields if not @h kupper = k.upcase @h[kupper] = v @original_key[kupper] = k end |
#to_s ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/bio-vcf/vcfrecord.rb', line 8 def to_s if @h @h.map { |k,v| (v ? @original_key[k] + '=' + v : @original_key[k]) }.join(';') else @info end end |