Module: Marked

Included in:
Object
Defined in:
lib/marked.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.log(object) ⇒ Object



29
30
31
32
# File 'lib/marked.rb', line 29

def self.log object
  rails_log object
  print object
end

.pad(object) ⇒ Object



42
43
44
# File 'lib/marked.rb', line 42

def self.pad object
  "       " + (object.is_a?(String) ? object : object.inspect)
end


38
39
40
# File 'lib/marked.rb', line 38

def self.print object
  STDOUT.puts object
end


46
47
48
# File 'lib/marked.rb', line 46

def self.print_benchmark measurement
  log " * Executed in #{'%0.3f' % measurement.real} seconds (#{'%0.3f' % measurement.cutime} cpu)\n"
end

.rails_log(object) ⇒ Object



34
35
36
# File 'lib/marked.rb', line 34

def self.rails_log object
  Rails.logger.debug object if defined?(Rails)
end

Instance Method Details

#mark(*objects) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/marked.rb', line 2

def mark *objects

  Marked.log "\nMARKED #{caller.first.split(':in ').first}"

  returnable = if block_given?
    require 'benchmark'
    result = nil
    bench = Benchmark.measure { result = yield }
    Marked.print_benchmark bench
    result
  else
    objects.last
  end

  if block_given?
    Marked.log Marked.pad returnable
  end

  objects.each do |object|
    Marked.log Marked.pad object
  end

  Marked.rails_log " / FINISHED MARKING"

  returnable
end