summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-07-01 00:17:32 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-07-01 00:17:32 -0400
commit1b2141743550aee95acda7b270d7df3fd671350e (patch)
treea54d1d4a46ca0e436045b6f66b11bedc9514e637
parent1f014c9769f28b7f77a53ac9fdcc2a4ec6c9915e (diff)
downloadguix-1b2141743550aee95acda7b270d7df3fd671350e.tar.gz
gnu: Add ruby-ruby-prof.
* gnu/packages/ruby.scm (ruby-ruby-prof): New variable.
-rw-r--r--gnu/packages/ruby.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e4cfff7cc2..08163599f9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6338,6 +6338,55 @@ variable length integers (varint) in Ruby Protocol Buffers.")
     (home-page "https://github.com/liquidm/varint")
     (license license:bsd-3)))
 
+(define-public ruby-ruby-prof
+  (package
+    (name "ruby-ruby-prof")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ruby-prof" version))
+       (sha256
+        (base32
+         "12cd91m08ih0imfpy4k87618hd4mhyz291a6bx2hcskza4nf6d27"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-rakefile
+           ;; This fixes the following error: "NameError: uninitialized
+           ;; constant Bundler::GemHelper" (see:
+           ;; https://github.com/ruby-prof/ruby-prof/issues/274).
+           (lambda _
+             (substitute* "Rakefile"
+               ((".*require \"bundler/setup\".*" all)
+                (string-append all "  require 'bundler/gem_tasks'\n")))
+             #t))
+         (add-before 'check 'compile
+          (lambda _
+            (invoke "rake" "compile"))))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-minitest" ,ruby-minitest)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)
+       ("ruby-rdoc" ,ruby-rdoc)))
+    (synopsis "Fast code profiler for Ruby")
+    (description "RubyProf is a fast code profiler for Ruby.  Its features
+include:
+@table @asis
+@item Speed
+Being a C extension, it is many times faster than the standard Ruby profiler.
+@item Measurement Modes
+It can measure program wall time, process time, object allocations and memory
+usage.
+@item Reports
+A variety of text and cross-referenced HTML reports can be generated.
+@item Threads
+Profiling multiple threads simultaneously is supported.
+@end table")
+    (home-page "https://github.com/ruby-prof/ruby-prof")
+    (license license:bsd-2)))
+
 (define-public ruby-gherkin
   (package
     (name "ruby-gherkin")