Sha256: f6bc656738876fb33a7286441ea59ecb6e49731910e3715f96c129306ce0cc2b

Contents?: true

Size: 853 Bytes

Versions: 1

Compression:

Stored size: 853 Bytes

Contents

require_relative '../support'
require_relative 'parser'
require_relative '../data_models/collection'
require 'yaml'

module Bioinform
  # YAMLParser can be used to parse hashes returned by #parse method of other parsers:
  # yaml_dump_of_pm = PM.new(...).to_yaml
  # PM.new(yaml_dump_of_pm, YAMLParser)
  class YAMLParser < Parser
    def initialize(input)
      @input = input
    end
    def parse!
      YAML.load(input)
    rescue Psych::SyntaxError
      raise 'parsing error'
    end
  end

  class YAMLCollectionParser < Parser
    include MultipleMotifsParser
    def initialize(input)
      @input = input
    end
    def collection
      @collection ||= YAML.load(input)
    end
    def parse!
      collection.collection.shift.first
    rescue Psych::SyntaxError
      raise 'parsing error'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bioinform-0.1.8 lib/bioinform/parsers/yaml_parser.rb