annotate vendor/plugins/redmine_bibliography/app/controllers/bibtex_entries_controller.rb @ 405:8a105a53b8f4 feature_36

Refactoring.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Wed, 13 Apr 2011 18:16:45 +0100
parents
children 40144aa9dfe7
rev   line source
luis@405 1 class BibtexEntriesController < ApplicationController
luis@405 2
luis@405 3 # parse string with bibtex authors
luis@405 4 # return an ordered array
luis@405 5 def parse_authors
luis@405 6
luis@405 7 end
luis@405 8
luis@405 9 # parses the bibtex file
luis@405 10 def parse_bibtex_file
luis@405 11
luis@405 12 end
luis@405 13
luis@405 14 def parse_bibtex_list(bibtex_list)
luis@405 15 bibliography = BibTeX.parse bibtex_list
luis@405 16
luis@405 17 no_entries = bibliography.data.length
luis@405 18
luis@405 19 logger.error "Gonna parse " no_entries.to_s " Bibtex entries"
luis@405 20
luis@405 21 # parses the bibtex entries
luis@405 22 bibliography.data.map do |d|
luis@405 23 create_bibtex_entry d
luis@405 24 end
luis@405 25
luis@405 26 @publication.bibtex_entry = @bentry
luis@405 27
luis@405 28 if @publication.save
luis@405 29 logger.error "SAVED"
luis@405 30 else
luis@405 31 logger.error "NOT SAVED"
luis@405 32 end
luis@405 33
luis@405 34 logger.error @publication.bibtex_entry
luis@405 35 end
luis@405 36
luis@405 37
luis@405 38
luis@405 39 def create_bibtex_entry(d)
luis@405 40 result = ''
luis@405 41 if d.class == BibTeX::Entry
luis@405 42 @bentry = BibtexEntry.new
luis@405 43
luis@405 44 d.fields.keys.map do |k|
luis@405 45 if k == "title"
luis@405 46 @publication.title = d[k]
luis@405 47 else
luis@405 48 @bentry[k] = d[k]
luis@405 49 end
luis@405 50 end
luis@405 51 @bentry.save!
luis@405 52 end
luis@405 53 end
luis@405 54
luis@405 55 end