press 0.16 → 0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/example.rb +145 -0
  2. data/lib/press/printer.rb +34 -30
  3. metadata +3 -2
data/lib/example.rb ADDED
@@ -0,0 +1,145 @@
1
+ $:.unshift(File.expand_path(File.join(Dir.getwd, "lib")))
2
+ require "press"
3
+
4
+ module Plain
5
+ extend Press
6
+
7
+ def self.run
8
+ puts "########## running ##########"
9
+
10
+ pd hello: "world"
11
+ puts
12
+
13
+ r = pd hello: "world" do
14
+ 42
15
+ end
16
+ puts r
17
+ puts
18
+
19
+ pdfm __FILE__, __method__, hello: "world"
20
+ puts
21
+
22
+ r = pdfm __FILE__, __method__, hello: "world" do
23
+ 42
24
+ end
25
+ puts r
26
+ puts
27
+
28
+ pd hello: "world" do
29
+ 1 / 0
30
+ end rescue
31
+ puts
32
+
33
+ pdfm __FILE__, __method__, hello: "world" do
34
+ 1 / 0
35
+ end rescue
36
+ puts
37
+ end
38
+ end
39
+
40
+ module Measure
41
+ extend Press
42
+
43
+ def self.run
44
+ puts "########## running ##########"
45
+
46
+ mpd hello: "world"
47
+ puts
48
+
49
+ r = mpd hello: "world" do
50
+ 42
51
+ end
52
+ puts r
53
+ puts
54
+
55
+ mpdfm __FILE__, __method__, hello: "world"
56
+ puts
57
+
58
+ r = mpdfm __FILE__, __method__, hello: "world" do
59
+ 42
60
+ end
61
+ puts r
62
+ puts
63
+
64
+ begin
65
+ 1 / 0
66
+ rescue => e
67
+ mpde e, hello: "world"
68
+ mpdfme __FILE__, __method__, e, hello: "world"
69
+ end
70
+ puts
71
+
72
+ mpd hello: "world" do
73
+ 1 / 0
74
+ end rescue
75
+ puts
76
+
77
+ mpdfm __FILE__, __method__, hello: "world" do
78
+ 1 / 0
79
+ end rescue
80
+ puts
81
+ end
82
+ end
83
+
84
+ module MeasureEvent
85
+ extend Press
86
+
87
+ def self.run
88
+ puts "########## running ##########"
89
+
90
+ mpd hello: "world", event: "sunset"
91
+ puts
92
+
93
+ r = mpd hello: "world", event: "sunset" do
94
+ 42
95
+ end
96
+ puts r
97
+ puts
98
+
99
+ mpdfm __FILE__, __method__, hello: "world", event: "sunset"
100
+ puts
101
+
102
+ r = mpdfm __FILE__, __method__, hello: "world", event: "sunset" do
103
+ 42
104
+ end
105
+ puts r
106
+ puts
107
+
108
+ begin
109
+ 1 / 0
110
+ rescue => e
111
+ mpde e, hello: "world", event: "sunset"
112
+ mpdfme __FILE__, __method__, e, hello: "world", event: "sunset"
113
+ end
114
+ puts
115
+
116
+ mpd hello: "world", event: "sunset" do
117
+ 1 / 0
118
+ end rescue
119
+ puts
120
+
121
+ mpdfm __FILE__, __method__, hello: "world", event: "sunset" do
122
+ 1 / 0
123
+ end rescue
124
+ puts
125
+ end
126
+ end
127
+
128
+ #Plain.mctx nil, nil
129
+ #Plain.run
130
+ #Plain.mctx nil, app: "slasher", deploy: "staging"
131
+ #Plain.run
132
+
133
+ #Measure.mctx nil, nil
134
+ #Measure.run
135
+ #Measure.mctx ["ripper", "production"].join("."), nil
136
+ #Measure.run
137
+ #Measure.mctx ["screamer", "testing"].join("."), app: "shreiker", deploy: "beta"
138
+ #Measure.run
139
+
140
+ #MeasureEvent.mctx nil, nil
141
+ #MeasureEvent.run
142
+ #MeasureEvent.mctx ["ripper", "production"].join("."), nil
143
+ #MeasureEvent.run
144
+ MeasureEvent.mctx ["screamer", "testing"].join("."), app: "shreiker", deploy: "beta"
145
+ MeasureEvent.run
data/lib/press/printer.rb CHANGED
@@ -12,45 +12,37 @@ module Press
12
12
  end
13
13
 
14
14
  def self.pd(*data, &blk)
15
- write $stdout, hashify(*data, {}), &blk
15
+ write(hashify(*data, {}), &blk)
16
16
  end
17
17
 
18
18
  def self.mpd(*data, &blk)
19
- mwrite $stdout, @mtx, hashify(*data, {}), &blk
19
+ mwrite(@mtx, hashify(*data, {}), &blk)
20
20
  end
21
21
 
22
22
  def self.pdfm(file, m, *data, &blk)
23
- write $stdout, hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk
23
+ write(hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk)
24
24
  end
25
25
 
26
26
  def self.mpdfm(file, m, *data, &blk)
27
- mwrite $stdout, [@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk
28
- end
29
-
30
- def self.pde(e, *data)
31
- write $stderr, hashify(*data, :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)
27
+ mwrite([@mtx, File.basename(file, ".rb"), m].compact.join("."), hashify(*data, :file => File.basename(file, ".rb"), :fn => m), &blk)
32
28
  end
33
29
 
34
30
  def self.mpde(e, *data)
35
- mwrite $stderr, [@mtx, "error"].compact.join("."), hashify(*data, :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)
31
+ ewrite(hashify(*data, errorify(e)))
36
32
  end
37
33
 
38
- def self.pdfme(file, m, e, *data)
39
- write $stderr, hashify(*data, :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, :file => File.basename(file, ".rb"), :fn => m)
34
+ def self.mpdfme(file, m, e, *data)
35
+ ewrite(hashify(*data, errorify(e).merge(:file => File.basename(file, ".rb"), :fn => m)))
40
36
  end
41
37
 
42
- def self.mpdfme(file, m, e, *data)
43
- mwrite $stderr, [@mtx, "error"].compact.join("."), hashify(*data, :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, :file => File.basename(file, ".rb"), :fn => m)
38
+ def self.errorify(e)
39
+ { :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}
44
40
  end
45
41
 
46
42
  def self.hashify(*data, initial)
47
43
  data.compact.reduce(initial.merge(@ctx || {})) { |d, v| d.merge v }
48
44
  end
49
45
 
50
- def self.mtag(tag, data)
51
- data.tap { |d| d[:measure] = [tag, d[:event]].compact.join(".") if tag }
52
- end
53
-
54
46
  def self.stringify(data)
55
47
  data.map do |(k, v)|
56
48
  case v
@@ -66,32 +58,44 @@ module Press
66
58
  "#{k}=#{v.iso8601}"
67
59
  else
68
60
  v_str = v.to_s.strip
69
- v_str.match(/\s/) ? "#{k}=\"#{v_str}\"" : "#{k}=#{v_str}"
61
+ v_str.match(/\s/) ? "#{k}=\'#{v_str}\'" : "#{k}=#{v_str}"
70
62
  end
71
63
  end.join(" ")
72
64
  end
73
65
 
74
- def self.write(file, data, &blk)
66
+ def self.ewrite(data)
67
+ $stderr.puts stringify(data.tap { |d| d[:measure] = [@mtx, "error"].compact.join(".") })
68
+ $stderr.flush
69
+ end
70
+
71
+ def self.write(data, &blk)
75
72
  unless blk
76
- file.puts stringify(data)
77
- file.flush
73
+ $stdout.puts stringify(data)
74
+ $stdout.flush
78
75
  else
79
76
  start = Time.now
80
- write file, { :at => "start" }.merge(data)
81
- yield.tap { write file, { :at => "finish", :elapsed => Time.now - start }.merge(data) }
77
+ write({ :at => "start" }.merge(data))
78
+ begin
79
+ yield.tap { write({ :at => "finish", :elapsed => Time.now - start }.merge(data)) }
80
+ rescue => e
81
+ ewrite(errorify(e).merge(data))
82
+ raise e
83
+ end
82
84
  end
83
85
  end
84
86
 
85
- def self.mwrite(file, tag, data, &blk)
87
+ def self.mwrite(tag, data, &blk)
86
88
  unless blk
87
- file.puts stringify(mtag(tag, data))
88
- file.flush
89
+ $stdout.puts stringify(data.tap { |d| d[:measure] = [tag, d[:event]].compact.join(".") if tag })
90
+ $stdout.flush
89
91
  else
90
92
  start = Time.now
91
- write file, { :at => "start" }.merge(data)
92
- yield.tap do
93
- elapsed = Time.now - start
94
- mwrite file, tag, { :at => "finish", :elapsed => elapsed }.merge(data).tap { |d| d[:val] = elapsed if tag }
93
+ write({ :at => "start" }.merge(data))
94
+ begin
95
+ yield.tap { elapsed = Time.now - start; mwrite(tag, { :at => "finish", :elapsed => elapsed }.merge(data).tap { |d| d[:val] = elapsed if tag }) }
96
+ rescue => e
97
+ ewrite(errorify(e).merge(data))
98
+ raise e
95
99
  end
96
100
  end
97
101
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: press
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.16'
4
+ version: '0.17'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-17 00:00:00.000000000 Z
12
+ date: 2012-11-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Data and exception printer.
15
15
  email: mark.fine@gmail.com
@@ -17,6 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - lib/example.rb
20
21
  - lib/press/printer.rb
21
22
  - lib/press.rb
22
23
  - Gemfile