Project

ref2bibtex

0.0
No commit activity in last 3 years
No release in over 3 years
Ok, maybe a bit more, you can pass a DOI and get the bibtex string back too.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.0
~> 11
~> 12.3
~> 3.8

Runtime

 Project Readme

Build Status

ref2bibtex

An (almost) single purpose gem wrapping Crossref's API. Pass it a full reference string, get back BibTeX. Pass it a DOI, get BibTeX. Want something more complex? See serrano.

usage

Be polite (https://github.com/CrossRef/rest-api-doc#etiquette). Provide a email as per CrossRef recommendations. Do this by:

  1. Add it to the file ~/.ref2bibtex_user_email.

  2. Add it to the file .env in the root of your application:

    REF2BIBTEX_USER_EMAIL=user@example.com

  3. Set REF2BIBTEX_USER_EMAIL in your shell profile.

If the email is set in multiple places priority is reverse order listed here.

Use citation2bibtex (aliased get):

 gem install ref2bibtex

 require 'ref2bibtex' 

 Ref2bibtex.get('Yoder, M. J., A. A. Valerio, A. Polaszek, L. Masner, and N. F. Johnson. 2009. Revision of Scelio pulchripennis - group species (Hymenoptera, Platygastroidea, Platygastridae). ZooKeys 20:53-118.') # => "@article{Yoder_2009,\n\tdoi = {10.3897/zookeys.20.205},\n\turl = {http://dx.doi.org/10.3897/zookeys.20.205},\n\tyear = 2009,\n\tmonth = {sep},\n\tpublisher = {Pensoft Publishers},\n\tvolume = {20},\n\tnumber = {0},\n\tauthor = {Matthew Yoder and Andrew Polaszek and Lubomir Masner and Norman Johnson and Alejandro Valerio},\n\ttitle = {Revision of Scelio pulchripennis - group species (Hymenoptera, Platygastroidea, Platygastridae)},\n\tjournal = {{ZOOKEYS}}\n}"

If you want the doi:

   Ref2bibtex.get_doi('Yoder, M. J., A. A. Valerio, A. Polaszek, L. Masner, and N. F. Johnson. 2009. Revision of Scelio pulchripennis - group species (Hymenoptera, Platygastroidea, Platygastridae). ZooKeys 20:53-118.') #  => "http://dx.doi.org/10.3897/zookeys.20.205" 

If you have the doi:

 Ref2bibtex.get_bibtex('http://dx.doi.org/10.3897/zookeys.20.205') # => "@article{Yoder_2009,\n\tdoi = {10.3897/zookeys.20.205},\n\turl = {http://dx.doi.org/10.3897/zookeys.20.205},\n\tyear = 2009,\n\tmonth = {sep},\n\tpublisher = {Pensoft Publishers},\n\tvolume = {20},\n\tnumber = {0},\n\tauthor = {Matthew Yoder and Andrew Polaszek and Lubomir Masner and Norman Johnson and Alejandro Valerio},\n\ttitle = {Revision of Scelio pulchripennis - group species (Hymenoptera, Platygastroidea, Platygastridae)},\n\tjournal = {{ZOOKEYS}}\n}" 

If you want a score:

  Ref2bibtex.get_score('E. Ven. 1337. Fake articles. Journal Get Scores. Hm:mm') # => 23.688715

Uses a cutoff against score, below cutoff returns false, set the cutoff:

  Ref2bibtex.cutoff            # => 50 
  Ref2bibtex.cutoff = 10       # => 10
  Ref2bibtex.reset_cutoff      # => 50 

faq

What if there are multiple results?

The code is dumb, it takes the first. You could use the internals to get more results.

acknowledgements

The Crossref API. Jon Hill, University of York, for his Python version and bringing up the approach.

license

NCSA, UI flavor