Module: PrettyFeed::Modulizer
- Defined in:
- lib/pretty_feed/modulizer.rb
Overview
Provides the pf (print_feed) method
Class Method Summary collapse
Class Method Details
.to_mod(truthy:, falsey:) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/pretty_feed/modulizer.rb', line 9 def to_mod(truthy:, falsey:) Module.new do define_method(:pftf) do |msg = nil, value = "", proc = nil, **, &block| rescue_logged = Array([:rescue_logged]) cvalue = if proc.nil? value else proc.respond_to?(:call) ? proc.call(value) : proc end color = cvalue ? truthy : falsey if block external_block = if rescue_logged.any? -> () { begin block.call rescue *rescue_logged => error puts PrettyFeed::Compat["[ERR][#{error.class}][#{error.}] #{msg}#{value}", color].send(color) puts PrettyFeed::Compat["[ERR][Backtrace]\n#{error.backtrace.join("\n")}", color].send(color) if [:backtrace_logged] raise error if [:reraise] end } else block end puts PrettyFeed::Compat["[BEG] #{msg}#{value}", color].send(color) if [:benchmark] time = Benchmark.realtime do external_block.call end seconds = "%.4fs" % time puts PrettyFeed::Compat["[FIN][#{seconds}] #{msg}#{value}", color].send(color) else external_block.call puts PrettyFeed::Compat["[FIN] #{msg}#{value}", color].send(color) end else puts PrettyFeed::Compat["#{msg}#{value}", color].send(color) end end end end |