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 @@ (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 + ;; , 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))))