Sha256: 4345678efe93f4b34061ff1d863e8c8f0744d7b82fd9315f3d7c40ca553dbe78

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 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
    @parser = nil
  end
  
  def parse(a_string)
    @verbatim = a_string
    @parser = @clean.parse(a_string) || @dirty.parse(a_string) || @canonical.parse(a_string)
    def @parser.to_json
      parsed = !!self
      res = {
        :parsed => parsed,
        :verbatim => self.text_value }
      if parsed
        res.merge!({
          :normalized => self.value,
          :canonical => self.canonical
          })
        data = self.details
        if data[:species] && data[:species][:namedHybrid]
          data[:species].delete(:namedHybrid)
          data = {:namedHybrid => data}
        end
        res.merge!(data)
      end
      res = {:scientificName => res}
      JSON.generate res
    end
    
    def @parser.pos_json
      JSON.generate self.pos rescue ''
    end
    @parser
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dimus-biodiversity-0.5.1 lib/biodiversity/parser.rb