[BioRuby] [BioRuby-cvs] bioruby/lib/bio reference.rb,1.24,1.25

Naohisa GOTO ngoto at gen-info.osaka-u.ac.jp
Thu May 29 13:00:30 UTC 2008


On Thu, 29 May 2008 11:25:47 +0000
Pjotr Prins <pjotr at dev.open-bio.org> wrote:

> Update of /home/repository/bioruby/bioruby/lib/bio
> In directory dev.open-bio.org:/tmp/cvs-serv15189
> 
> Modified Files:
> 	reference.rb 
> Log Message:
> - Improved bibtex support (optional output of abstract - strip empty fields)
> - Put generated URL into separate method

I don't agree with the changes about URL because Bio::Reference is
not only for PubMed data but also for general bibliography reference
data but your changes about the url is too specific for PubMed.

-- 
Naohisa Goto
ng at bioruby.org / ngoto at gen-info.osaka-u.ac.jp

> 
> Index: reference.rb
> ===================================================================
> RCS file: /home/repository/bioruby/bioruby/lib/bio/reference.rb,v
> retrieving revision 1.24
> retrieving revision 1.25
> diff -C2 -d -r1.24 -r1.25
> *** reference.rb	5 Apr 2007 23:35:39 -0000	1.24
> --- reference.rb	29 May 2008 11:25:44 -0000	1.25
> ***************
> *** 71,77 ****
>       attr_reader :abstract
>   
> -     # An URL String.
> -     attr_reader :url
> - 
>       # MeSH terms in an Array.
>       attr_reader :mesh
> --- 71,74 ----
> ***************
> *** 128,132 ****
>         @medline  = hash['medline'] # 98765432
>         @abstract = hash['abstract']
> -       @url      = hash['url']
>         @mesh     = hash['mesh']
>         @affiliations = hash['affiliations']
> --- 125,128 ----
> ***************
> *** 232,241 ****
>         lines << "%P #{@pages}" unless @pages.empty?
>         lines << "%M #{@pubmed}" unless @pubmed.to_s.empty?
> !       if @pubmed
> !         cgi = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi"
> !         opts = "cmd=Retrieve&db=PubMed&dopt=Citation&list_uids"
> !         @url = "#{cgi}?#{opts}=#{@pubmed}"
> !       end
> !       lines << "%U #{@url}" unless @url.empty?
>         lines << "%X #{@abstract}" unless @abstract.empty?
>         @mesh.each do |term|
> --- 228,232 ----
>         lines << "%P #{@pages}" unless @pages.empty?
>         lines << "%M #{@pubmed}" unless @pubmed.to_s.empty?
> !       lines << "%U #{url}" unless url.empty?
>         lines << "%X #{@abstract}" unless @abstract.empty?
>         @mesh.each do |term|
> ***************
> *** 299,318 ****
>       # *Arguments*:
>       # * (optional) _section_: BiBTeX section as String
>       # *Returns*:: String
> !     def bibtex(section = nil)
>         section = "article" unless section
>         authors = authors_join(' and ', ' and ')
>         pages   = @pages.sub('-', '--')
> !       return <<-"END".gsub(/\t/, '')
> !         @#{section}{PMID:#{@pubmed},
> !           author  = {#{authors}},
> !           title   = {#{@title}},
> !           journal = {#{@journal}},
> !           year    = {#{@year}},
> !           volume  = {#{@volume}},
> !           number  = {#{@issue}},
> !           pages   = {#{pages}},
> !         }
> !       END
>       end
>   
> --- 290,317 ----
>       # *Arguments*:
>       # * (optional) _section_: BiBTeX section as String
> +     # * (optional) _keywords_: Array of additional keywords, e.g. ['abstract']
>       # *Returns*:: String
> !     def bibtex(section = nil, add_keywords = [])
>         section = "article" unless section
>         authors = authors_join(' and ', ' and ')
>         pages   = @pages.sub('-', '--')
> !       keywords = "author title journal year volume number pages url".split(/ /)
> !       bib = "@#{section}{PMID:#{@pubmed},\n"
> !       (keywords+add_keywords).each do | kw |
> !         if kw == 'author'
> !           ref = authors
> !         elsif kw == 'title'
> !           # strip final dot from title
> !           ref = @title.sub(/\.$/,'')
> !         elsif kw == 'number'
> !           ref = @issue
> !         elsif kw == 'url'
> !           ref = url
> !         else
> !           ref = eval('@'+kw)
> !         end
> !         bib += "  #{kw.ljust(12)} = {#{ref}},\n" if ref != ''
> !       end
> !       bib+"}\n"
>       end
>   
> ***************
> *** 500,503 ****
> --- 499,513 ----
>       end
>   
> +     # Returns a valid URL for pubmed records
> +     #
> +     # *Returns*:: String
> +     def url
> +       if @pubmed != ''
> +         cgi = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi"
> +         opts = "cmd=Retrieve&db=PubMed&dopt=Citation&list_uids"
> +         return "#{cgi}?#{opts}=#{@pubmed}"
> +       end
> +       ''
> +     end
>   
>       private
> ***************
> *** 527,530 ****
> --- 537,541 ----
>       end
>   
> + 
>     end
>   
> 
> _______________________________________________
> bioruby-cvs mailing list
> bioruby-cvs at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioruby-cvs





More information about the BioRuby mailing list