summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorPhilip McGrath <philip@philipmcgrath.com>2022-07-25 08:16:20 -0400
committerLudovic Courtès <ludo@gnu.org>2022-08-04 12:05:50 +0200
commitcc5b8cb3c09fd56834bc9ddcb823ce0be9c84b87 (patch)
tree3e00e8cf3ad1369e9ad71366eaa11a0638e8208e /gnu/packages
parent7ffea0822a25c54591b3cfeee0affd4d84afddca (diff)
downloadguix-patches-cc5b8cb3c09fd56834bc9ddcb823ce0be9c84b87.tar
guix-patches-cc5b8cb3c09fd56834bc9ddcb823ce0be9c84b87.tar.gz
gnu: Add ruby-latex-decode.
* gnu/packages/patches/ruby-latex-decode-fix-test.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ruby.scm (ruby-latex-decode): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/patches/ruby-latex-decode-fix-test.patch66
-rw-r--r--gnu/packages/ruby.scm52
2 files changed, 118 insertions, 0 deletions
diff --git a/gnu/packages/patches/ruby-latex-decode-fix-test.patch b/gnu/packages/patches/ruby-latex-decode-fix-test.patch
new file mode 100644
index 0000000000..58d7d16258
--- /dev/null
+++ b/gnu/packages/patches/ruby-latex-decode-fix-test.patch
@@ -0,0 +1,66 @@
+From 698e39a251d433e2cd2934586a2dfc5e6582c4f9 Mon Sep 17 00:00:00 2001
+From: Philip McGrath <philip@philipmcgrath.com>
+Date: Sun, 24 Jul 2022 09:12:55 -0400
+Subject: [PATCH] Improve readability of whitespace tests
+
+This change fixes the test for `~x` in some environments in which it
+was previously failing.
+
+Related to https://github.com/inukshuk/latex-decode/issues/13
+---
+ features/step_definitions/latex.rb | 5 +++++
+ features/symbols.feature | 7 -------
+ features/whitespace.feature | 13 +++++++++++++
+ 3 files changed, 18 insertions(+), 7 deletions(-)
+ create mode 100644 features/whitespace.feature
+
+diff --git a/features/step_definitions/latex.rb b/features/step_definitions/latex.rb
+index 4b1b595..fca63c0 100644
+--- a/features/step_definitions/latex.rb
++++ b/features/step_definitions/latex.rb
+@@ -5,3 +5,8 @@ end
+ Then /^the result should be ('|")(.*)\1$/ do |quote,value|
+ expect(@result).to eq(value)
+ end
++
++# For whitespace or other characters that are hard to read in source code:
++Then /^I should get '([^']*)' \+ U\+(\h{4,}) \+ '([^']*)'$/ do |pre,code,post|
++ expect(@result).to eq(pre + code.hex.chr(Encoding::UTF_8) + post)
++end
+diff --git a/features/symbols.feature b/features/symbols.feature
+index 46d9a51..f8a5e84 100644
+--- a/features/symbols.feature
++++ b/features/symbols.feature
+@@ -12,10 +12,3 @@ Feature: Decode LaTeX symbol directives
+ | \\uparrow | ↑ |
+ | \\downarrow | ↓ |
+ | \\rightarrow | → |
+-
+- Scenarios: Whitespace
+- | latex | unicode | description |
+- | x\\,x | x x | small space |
+- | x~x | x x | non-breaking space |
+- | ~x |  x | non-breaking space |
+-
+diff --git a/features/whitespace.feature b/features/whitespace.feature
+new file mode 100644
+index 0000000..fe5b208
+--- /dev/null
++++ b/features/whitespace.feature
+@@ -0,0 +1,13 @@
++Feature: Decode LaTeX whitespace directives
++ As a hacker who works with LaTeX
++ I want to be able to decode LaTeX whitespace
++
++ Scenario Outline: LaTeX to Unicode transformation
++ When I decode the string '<latex>'
++ Then I should get <pre> + U+<code> + <post>
++
++ Scenarios: Whitespace
++ | latex | pre | code | post | description |
++ | x~x | 'x' | 00A0 | 'x' | non-breaking space |
++ | ~y | '' | 00A0 | 'y' | leading non-breaking space |
++ | z\\,z | 'z' | 2009 | 'z' | small space |
+--
+2.32.0
+
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 746bb9b6ce..5111b9ae2b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13111,3 +13111,55 @@ adaptation of TeX math syntax for web display. Ritex makes inserting math
into HTML pages easy. It supports most TeX math syntax as well as macros.")
;; doesn't clearly state -only vs -or-later
(license license:gpl2)))
+
+(define-public ruby-latex-decode
+ (package
+ (name "ruby-latex-decode")
+ (version "0.4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/inukshuk/latex-decode")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1f5j67ayd04pjkmzvn0hk7cr8yqvn0gyg9ns6a0vhzj2gwna9ihy"))
+ (file-name (git-file-name name version))))
+ (build-system ruby-build-system)
+ (native-inputs
+ (list ruby-cucumber
+ ruby-ritex
+ ruby-rspec))
+ (arguments
+ (list
+ #:test-target "cucumber"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'avoid-bundler
+ (lambda args
+ (substitute* "Rakefile"
+ (("require 'bundler" orig)
+ (string-append "# " orig " # patched for Guix"))
+ (("Cucumber::Rake::Task\\.new[(]:cucumber[)]" orig)
+ (string-append orig " do |c|\n"
+ " c.bundler = false # patched for Guix\n"
+ "end"))
+ (("Bundler\\.setup" orig)
+ (string-append "true # " orig " # patched for Guix")))
+ (substitute* "cucumber.yml"
+ ;; thanks to avoiding bundler, we can't use this option
+ ((" --publish-quiet")
+ ""))))
+ (add-after 'replace-git-ls-files 'replace-another-git-ls-files
+ (lambda args
+ (substitute* "latex-decode.gemspec"
+ (("`git ls-files -- [{]test,spec,features[}]/\\*`")
+ "`find {test,spec,features} -type f | sort`")))))))
+ (home-page "https://github.com/inukshuk/latex-decode")
+ (synopsis "Convert LaTeX to Unicode")
+ (description
+ "This package provides a gem to convert LaTeX input to Unicode. Its
+original use was as an input filter for BibTeX-Ruby, but it can be used
+independently to decode LaTeX. Many of the patterns used by this Ruby gem are
+based on François Charette's equivalent Perl module @code{LaTeX::Decode}.")
+ (license license:gpl3+)))