Sha256: a947b4f069b7371e2a2ed4a96078640329975891a4632b930a81b01c6c516f4e

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

# encoding: UTF-8
dir = File.dirname(__FILE__)
require File.join(dir, *%w[parser scientific_name_clean])
require File.join(dir, *%w[parser scientific_name_dirty])
require File.join(dir, *%w[parser scientific_name_canonical])
require 'rubygems'
require 'json'

class ScientificNameParser
  
  def initialize
    @verbatim = ''
    @clean = ScientificNameCleanParser.new
    @dirty = ScientificNameDirtyParser.new
    @canonical = ScientificNameCanonicalParser.new
    @parsed = nil
  end
  
  def parsed
    @parsed
  end
  
  def parse(a_string)
    @verbatim = a_string
    @parsed = @clean.parse(a_string) || @dirty.parse(a_string) || @canonical.parse(a_string) || {:verbatim => a_string}
    def @parsed.all
      parsed = self.class != Hash
      res = {:parsed => parsed}
      if parsed
        hybrid = self.hybrid rescue false
        res.merge!({
          :verbatim => self.text_value,
          :normalized => self.value,
          :canonical => self.canonical,
          :hybrid => hybrid,
          :details => self.details,
          :positions => self.pos
          })
      else
        res.merge!(self)
      end
      res = {:scientificName => res}
      res
    end
    
    def @parsed.pos_json
      self.pos.to_json rescue ''
    end
    
    def @parsed.all_json
      self.all.to_json rescue ''
    end
    
    @parsed.all
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
dimus-biodiversity-0.5.14 lib/biodiversity/parser.rb
biodiversity19-0.5.15 lib/biodiversity/parser.rb
biodiversity-0.5.15 lib/biodiversity/parser.rb
biodiversity-0.5.14 lib/biodiversity/parser.rb