From 3b017b9400978a7f351fd8a75e33d1eefb079d08 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Mon, 25 Jul 2022 08:16:30 -0400 Subject: gnu: Add ruby-anystyle. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ruby.scm (ruby-anystyle): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/ruby.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6b312d1b4d..39d8d9e1ef 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -13480,3 +13480,74 @@ the power of the built-in @code{OptionParser}.") (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 + ;; , 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 + ;; . 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)))) -- cgit v1.2.3