press 0.16 → 0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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