Module: Marked

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.log(object) ⇒ Object



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

def self.log object
  rails_log object
  print object
end

.pad(object) ⇒ Object



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

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


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

def self.print object
  STDOUT.puts object
end


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

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

.rails_log(object) ⇒ Object



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

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
# 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 }
    result
  else
    objects.last
  end

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

  Marked.log Marked.pad returnable if block_given?

  Marked.print_benchmark bench if result

  Marked.rails_log " / FINISHED MARKING"

  returnable
end