require 'redis' require 'biodiversity' class ParsleyStore #database numbers for Redis LOCAL = 1 SLAVE = 2 def initialize @parser = ScientificNameParser.new @local = Redis.new @local.select(LOCAL) end def parse(scientific_name) stored = @local.get(scientific_name) return stored if stored begin parsed = @parser.parse(scientific_name) rescue @parser = ScientificNameParser.new parsed = @parser.parse(scientific_name) end @local.set scientific_name, parsed parsed end end