Module: Press::Printer

Defined in:
lib/press/printer.rb

Class Method Summary collapse

Class Method Details

.cpd(*data) ⇒ Object

count print data



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

def self.cpd(*data)
  cwrite($stdout, @mtx, hashify(*data, {}))
end

.cpdfm(file, m, *data) ⇒ Object

count print data file method



62
63
64
# File 'lib/press/printer.rb', line 62

def self.cpdfm(file, m, *data)
  cwrite($stdout, [@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m))
end

.ctx=(data) ⇒ Object

context



7
8
9
# File 'lib/press/printer.rb', line 7

def self.ctx=(data)
  @ctx = data
end

.cwrite(file, tag, data) ⇒ Object



168
169
170
# File 'lib/press/printer.rb', line 168

def self.cwrite(file, tag, data)
  write(file, data.tap { |d| d["count.#{[tag, d[:event]].compact.join(".")}"] = d[:val] || 1 if tag })
end

.errorify(e) ⇒ Object



96
97
98
# File 'lib/press/printer.rb', line 96

def self.errorify(e)
  { :at => "error", :class => e.class, :message => e.message.lines.to_a.first, :trace => e.backtrace.map { |i| i.match(/(#{Gem.dir}|#{Dir.getwd})?\/(.*):in (.*)/) && $2 }[0..5].compact.inspect}
end

.hashify(*data, initial) ⇒ Object



100
101
102
# File 'lib/press/printer.rb', line 100

def self.hashify(*data, initial)
  data.compact.reduce(initial.merge(@ctx || {})) { |d, v| d.merge v }
end

.mpd(*data, &blk) ⇒ Object

measure print data



22
23
24
# File 'lib/press/printer.rb', line 22

def self.mpd(*data, &blk)
  mwrite($stdout, @mtx, hashify(*data, {}), &blk)
end

.mpde(e, *data) ⇒ Object

measure print data exception



72
73
74
# File 'lib/press/printer.rb', line 72

def self.mpde(e, *data)
  mwrite($stderr, [@mtx, "error"].compact.join("."), hashify(*data, errorify(e)))
end

.mpdfm(file, m, *data, &blk) ⇒ Object

measure print data file method



47
48
49
# File 'lib/press/printer.rb', line 47

def self.mpdfm(file, m, *data, &blk)
  mwrite($stdout, [@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk)
end

.mpdfme(file, m, e, *data) ⇒ Object

measure print data file method exception



87
88
89
# File 'lib/press/printer.rb', line 87

def self.mpdfme(file, m, e, *data)
  mwrite($stderr, [@mtx, "error"].compact.join("."), hashify(*data, errorify(e).merge(:file => File.basename(file, ".rb"), :fn => m)))
end

.mtx=(tag) ⇒ Object

measure tag



12
13
14
# File 'lib/press/printer.rb', line 12

def self.mtx=(tag)
  @mtx = tag
end

.mwrite(file, tag, data, &blk) ⇒ Object



138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/press/printer.rb', line 138

def self.mwrite(file, tag, data, &blk)
  unless blk
    write(file, data.tap { |d| d[:measure] = [tag, d[:event]].compact.join(".") if tag })
  else
    start = Time.now
    write(file, { :at => "start" }.merge(data))
    yield.tap do
      elapsed = Time.now - start;
      mwrite(file, tag, { :at => "finish", :elapsed => elapsed }.merge(data).tap { |d| d[:val] = elapsed if tag })
    end
  end
end

.pd(*data, &blk) ⇒ Object

print data



17
18
19
# File 'lib/press/printer.rb', line 17

def self.pd(*data, &blk)
  write($stdout, hashify(*data, {}), &blk)
end

.pde(e, *data) ⇒ Object

print data exception



67
68
69
# File 'lib/press/printer.rb', line 67

def self.pde(e, *data)
  write($stderr, hashify(*data, errorify(e)))
end

.pdfm(file, m, *data, &blk) ⇒ Object

print data file method



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

def self.pdfm(file, m, *data, &blk)
  write($stdout, hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk)
end

.pdfme(file, m, e, *data) ⇒ Object

print data file method exception



82
83
84
# File 'lib/press/printer.rb', line 82

def self.pdfme(file, m, e, *data)
  write($stderr, hashify(*data, errorify(e).merge(:file => File.basename(file, ".rb"), :fn => m)))
end

.spd(*data) ⇒ Object

sample print data



32
33
34
# File 'lib/press/printer.rb', line 32

def self.spd(*data)
  swrite($stdout, @mtx, hashify(*data, {}))
end

.spdfm(file, m, *data) ⇒ Object

sample print data file method



57
58
59
# File 'lib/press/printer.rb', line 57

def self.spdfm(file, m, *data)
  swrite($stdout, [@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m))
end

.stringify(data) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/press/printer.rb', line 104

def self.stringify(data)
  data.map do |(k, v)|
    case v
    when Hash
      "#{k}={.."
    when Array
      "#{k}=[.."
    when NilClass
      "#{k}=nil"
    when Float
      "#{k}=#{format("%.3f", v)}"
    when Time
      "#{k}=#{v.iso8601}"
    else
      v_str = v.to_s.strip
      v_str.match(/\s/) ? "#{k}=\'#{v_str}\'" : "#{k}=#{v_str}"
    end
  end.join(" ")
end

.swrite(file, tag, data) ⇒ Object



164
165
166
# File 'lib/press/printer.rb', line 164

def self.swrite(file, tag, data)
  write(file, data.tap { |d| d["sample.#{[tag, d[:event]].compact.join(".")}"] = d[:val] if tag })
end

.write(file, data, &blk) ⇒ Object



124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/press/printer.rb', line 124

def self.write(file, data, &blk)
  unless blk
    file.puts stringify(data)
    file.flush
    nil
  else
    start = Time.now
    write(file, { :at => "start" }.merge(data))
    yield.tap do
      write(file, { :at => "finish", :elapsed => Time.now - start }.merge(data))
    end
  end
end

.xpd(*data, &blk) ⇒ Object

measure print data



27
28
29
# File 'lib/press/printer.rb', line 27

def self.xpd(*data, &blk)
  xwrite($stdout, @mtx, hashify(*data, {}), &blk)
end

.xpde(e, *data) ⇒ Object

measure print data exception



77
78
79
# File 'lib/press/printer.rb', line 77

def self.xpde(e, *data)
  xwrite($stderr, [@mtx, "error"].compact.join("."), hashify(*data, errorify(e)))
end

.xpdfm(file, m, *data, &blk) ⇒ Object

measure print data file method



52
53
54
# File 'lib/press/printer.rb', line 52

def self.xpdfm(file, m, *data, &blk)
  xwrite($stdout, [@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk)
end

.xpdfme(file, m, e, *data) ⇒ Object

measure print data file method exception



92
93
94
# File 'lib/press/printer.rb', line 92

def self.xpdfme(file, m, e, *data)
  xwrite($stderr, [@mtx, "error"].compact.join("."), hashify(*data, errorify(e).merge(:file => File.basename(file, ".rb"), :fn => m)))
end

.xwrite(file, tag, data, &blk) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/press/printer.rb', line 151

def self.xwrite(file, tag, data, &blk)
  unless blk
    write(file, data.tap { |d| d["measure.#{[tag, d[:event]].compact.join(".")}"] = d[:val] || 1 if tag })
  else
    start = Time.now
    write(file, { :at => "start" }.merge(data))
    yield.tap do
      elapsed = Time.now - start;
      xwrite(file, tag, { :at => "finish", :elapsed => elapsed }.merge(data).tap { |d| d[:val] = elapsed if tag })
    end
  end
end