Sha256: cc26e118399dcfd5e76f51de2e6717c30666cd014709f980324d8c4e5a336705

Contents?: true

Size: 911 Bytes

Versions: 4

Compression:

Stored size: 911 Bytes

Contents

require "critique/version"
require "logger"

module Critique
  autoload :Profiling, 'critique/profiling'

  class << self
    def included(base)
      base.extend(ClassMethods)
    end

    def profile(base)
      yield
    end

    def disable!
      module_eval("def self.profile(base) ; yield ; end")
    end

    def enable!
      module_eval("def self.profile(base, &block) ; Profiling.profile(base, 2, &block) ; end")
      @_enabled = true
    end

    def enabled?
      @_enabled || false
    end

    def logger=(logger)
      if logger.is_a?(IO) || logger.is_a?(String)
        @_logger = Logger.new(logger)
      else
        @_logger = logger
      end
    end

    def logger
      @_logger ||= Logger.new($stdout)
    end
  end

  module ClassMethods
    def critique(&block)
      Critique.profile(self, &block)
    end
  end

  def critique(&block)
    Critique.profile(self, &block)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
critique-0.1.3 lib/critique.rb
critique-0.1.2 lib/critique.rb
critique-0.1.1 lib/critique.rb
critique-0.1 lib/critique.rb