X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Fbenchmark_helper.rb;fp=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Fbenchmark_helper.rb;h=bd72cda70038679099b4f5e51ee7a8db8019f713;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git

diff --git a/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb b/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb
new file mode 100644
index 0000000..bd72cda
--- /dev/null
+++ b/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb
@@ -0,0 +1,33 @@
+require 'benchmark'
+
+module ActionView
+  module Helpers
+    # This helper offers a method to measure the execution time of a block 
+    # in a template.
+    module BenchmarkHelper
+      # Allows you to measure the execution time of a block 
+      # in a template and records the result to the log. Wrap this block around
+      # expensive operations or possible bottlenecks to get a time reading
+      # for the operation.  For example, let's say you thought your file 
+      # processing method was taking too long; you could wrap it in a benchmark block.
+      #
+      #  <% benchmark "Process data files" do %>
+      #    <%= expensive_files_operation %>
+      #  <% end %>
+      #
+      # That would add something like "Process data files (345.2ms)" to the log,
+      # which you can then use to compare timings when optimizing your code.
+      #
+      # You may give an optional logger level as the second argument
+      # (:debug, :info, :warn, :error); the default value is :info.
+      def benchmark(message = "Benchmarking", level = :info)
+        if controller.logger
+          seconds = Benchmark.realtime { yield }
+          controller.logger.send(level, "#{message} (#{'%.1f' % (seconds * 1000)}ms)")
+        else
+          yield
+        end
+      end
+    end
+  end
+end
\ No newline at end of file