Module: Blab

Defined in:
lib/blab.rb,
lib/blab/config.rb,
lib/blab/tracer.rb,
lib/blab/printer.rb,
lib/blab/version.rb,
lib/blab/formatter.rb

Defined Under Namespace

Modules: Config, Tracer Classes: Formatter, Printer

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



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
# File 'lib/blab.rb', line 10

def self.included(base)
  base.define_singleton_method(:blab) do |name|
    old_m = self.instance_method(name)

    self.send(:define_method, name) do |*args|
      begin
        set_trace_func(Blab::Tracer.trace)
        old_m.bind(self).call(*args)
      ensure
        set_trace_func(nil)
        Blab::Tracer.reset
      end
    end
  end

  def with_blab
    begin
      set_trace_func(Blab::Tracer.trace)
      yield
    ensure
      set_trace_func(nil)
      Blab::Tracer.reset
    end
  end
end

Instance Method Details

#with_blabObject



25
26
27
28
29
30
31
32
33
# File 'lib/blab.rb', line 25

def with_blab
  begin
    set_trace_func(Blab::Tracer.trace)
    yield
  ensure
    set_trace_func(nil)
    Blab::Tracer.reset
  end
end