summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2015-03-20 12:13:14 -0500
committerEric Bavier <bavier@member.fsf.org>2015-03-20 14:22:36 -0500
commitc666dc3934edf18a83cc03624a8470c17373d97c (patch)
tree18267f2c631e25a4e25489204d243f570b267335 /gnu
parent2775b61b75647b6981f370a317e3d1a4d9286c58 (diff)
downloadguix-c666dc3934edf18a83cc03624a8470c17373d97c.tar.gz
gnu: Add Data-Visitor.
* gnu/packages/perl.scm (perl-data-visitor): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/perl.scm31
1 files changed, 31 insertions, 0 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 0dca3cdfb5..3287c4a856 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -950,6 +950,37 @@ The maths behind this is unfortunately fiddly, hence this module.")
 variants")
     (license (package-license perl))))
 
+(define-public perl-data-visitor
+  (package
+    (name "perl-data-visitor")
+    (version "0.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DO/DOY/"
+                           "Data-Visitor-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0m7d1505af9z2hj5aw020grcmjjlvnkjpvjam457d7k5qfy4m8lf"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-requires" ,perl-test-requires)))
+    (propagated-inputs
+     `(("perl-class-load" ,perl-class-load)
+       ("perl-moose" ,perl-moose)
+       ("perl-namespace-clean" ,perl-namespace-clean)
+       ("perl-task-weaken" ,perl-task-weaken)
+       ("perl-tie-toobject" ,perl-tie-toobject)))
+    (home-page "http://search.cpan.org/dist/Data-Visitor")
+    (synopsis "Visitor style traversal of Perl data structures")
+    (description "This module is a simple visitor implementation for Perl
+values.  It has a main dispatcher method, visit, which takes a single perl
+value and then calls the methods appropriate for that value.  It can
+recursively map (cloning as necessary) or just traverse most structures, with
+support for per-object behavior, circular structures, visiting tied
+structures, and all ref types (hashes, arrays, scalars, code, globs).")
+    (license (package-license perl))))
+
 (define-public perl-devel-caller
   (package
     (name "perl-devel-caller")