luis@405: class BibtexEntriesController < ApplicationController luis@405: luis@405: # parse string with bibtex authors luis@405: # return an ordered array luis@405: def parse_authors luis@405: luis@405: end luis@405: luis@405: # parses the bibtex file luis@405: def parse_bibtex_file luis@405: luis@405: end luis@405: luis@405: def parse_bibtex_list(bibtex_list) luis@405: bibliography = BibTeX.parse bibtex_list luis@405: luis@405: no_entries = bibliography.data.length luis@405: luis@405: logger.error "Gonna parse " no_entries.to_s " Bibtex entries" luis@405: luis@405: # parses the bibtex entries luis@405: bibliography.data.map do |d| luis@405: create_bibtex_entry d luis@405: end luis@405: luis@405: @publication.bibtex_entry = @bentry luis@405: luis@405: if @publication.save luis@405: logger.error "SAVED" luis@405: else luis@405: logger.error "NOT SAVED" luis@405: end luis@405: luis@405: logger.error @publication.bibtex_entry luis@405: end luis@405: luis@405: luis@405: luis@405: def create_bibtex_entry(d) luis@405: result = '' luis@405: if d.class == BibTeX::Entry luis@405: @bentry = BibtexEntry.new luis@405: luis@405: d.fields.keys.map do |k| luis@405: if k == "title" luis@405: @publication.title = d[k] luis@405: else luis@405: @bentry[k] = d[k] luis@405: end luis@405: end luis@405: @bentry.save! luis@405: end luis@405: end luis@405: luis@405: end