gnu: Add ruby-anystyle.

* gnu/packages/ruby.scm (ruby-anystyle): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Philip McGrath 2022-07-25 08:16:30 -04:00 committed by Ludovic Courtès
parent 8d4670f4d1
commit 3b017b9400
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -13480,3 +13480,74 @@ (define-public ruby-anystyle-data
(description
"This gem provides parser dictionary data for AnyStyle.")
(license license:bsd-2)))
(define-public ruby-anystyle
(let ((commit "50f1dd547d28ab4b830e45d70e840cb1898a37b0")
(revision "1"))
;; Releases point to specific commits, but recent releases haven't been
;; tagged in Git. Meanwhile, the rubygems archive lacks tests.
(package
(name "ruby-anystyle")
(version (git-version "1.3.14" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/inukshuk/anystyle")
(commit commit)))
(sha256
(base32
"0f4qcrywl1kl6qysn24lj3yp85ln4i7za7b7ld2fglyzwcggxwb0"))
(snippet
;; There is an optional dependency on
;; <https://github.com/feedbackmine/language_detector>, which
;; seems like it was intended to be free software, but
;; doesn't have a clear license statement. Maybe someone can
;; do more sleuthing, or else find a replacement? See also
;; <https://github.com/inukshuk/anystyle/issues/186>. For
;; now, patch it out, but leave a pointer to follow up.
#~(begin
(use-modules (guix build utils))
(substitute* "Gemfile"
(("gem 'language_detector', github: '[^']*'" orig)
(string-append "# " orig " # unclear license")))
(substitute* "spec/anystyle/parser_spec.rb"
(("language: 'en'," orig)
(string-append "# " orig " # no lanugage_detector")))))
(file-name (git-file-name name version))))
(build-system ruby-build-system)
(propagated-inputs
(list ruby-anystyle-data
ruby-bibtex-ruby
ruby-namae
ruby-wapiti))
(native-inputs
(list ruby-byebug
ruby-citeproc
ruby-edtf
ruby-rspec
ruby-unicode-scripts))
(arguments
(list
#:test-target "spec"
#:phases
#~(modify-phases %standard-phases
(add-after 'extract-gemspec 'avoid-bundler
(lambda args
(substitute* "Rakefile"
(("require 'bundler" orig)
(string-append "# " orig " # patched for Guix"))
(("Bundler\\.setup" orig)
(string-append "true # " orig " # patched for Guix")))))
(add-after 'replace-git-ls-files 'replace-another-git-ls-files
(lambda args
(substitute* "anystyle.gemspec"
(("`git ls-files spec`")
"`find spec -type f | sort`")))))))
(home-page "https://anystyle.io")
(synopsis "Fast and smart citation reference parsing (Ruby library)")
(description
"AnyStyle is a very fast and smart parser for academic reference lists
and bibliographies. AnyStyle uses powerful machine learning heuristics based
on Conditional Random Fields and aims to make it easy to train the model with
data that is relevant to your parsing needs.")
(license license:bsd-2))))