require 'rubygems' require 'bio' require 'open-uri' require 'active_record' class ActiveEMBL < ActiveRecord::Base serialize :embl_obj def after_create self.embl_obj = ActiveEMBL.fetch(self.accession) save end def self.get(embl_id) ActiveEMBL.find_or_create_by_accession(embl_id) end alias original_method_missing method_missing def method_missing(meth,*args) if read_attribute(:embl_obj).respond_to? meth read_attribute(:embl_obj).send meth, *args else original_method_missing meth, *args end end private def self.fetch(id) uri = 'http://www.ebi.ac.uk/cgi-bin/dbfetch?db=EMBL&id=' + id.downcase + '&style=raw' embl = Bio::EMBL.new(open(uri).read) return embl end end