pethau 0.0.2 → 0.0.3
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.
- data/README.md +21 -1
- data/lib/pethau.rb +2 -1
- data/lib/pethau/default_value_of.rb +1 -1
- data/lib/pethau/log_exceptions_from.rb +30 -0
- data/lib/pethau/version.rb +1 -1
- metadata +3 -2
data/README.md
CHANGED
@@ -96,4 +96,24 @@ I can type this:
|
|
96
96
|
|
97
97
|
class Boggle
|
98
98
|
private_attr_accessor :orf, :gin
|
99
|
-
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
### log\_exceptions\_from
|
103
|
+
|
104
|
+
A lot of the time tracking down error messages is a bit of a pain, trawling
|
105
|
+
through code and hoping thta somewhere jumps out that it's be useful to do this:
|
106
|
+
|
107
|
+
def foo
|
108
|
+
do_the_thing
|
109
|
+
rescue => e
|
110
|
+
logger.error [ e.message, e.backtrace ].flatten.join("\n")
|
111
|
+
raise # I still want to raise the exception, I just want to know what's up
|
112
|
+
end
|
113
|
+
|
114
|
+
Hence, log\_exceptions\_from:
|
115
|
+
|
116
|
+
def foo
|
117
|
+
do_the_thing
|
118
|
+
end
|
119
|
+
log\_exceptions\_from :foo
|
data/lib/pethau.rb
CHANGED
@@ -7,7 +7,7 @@ module Pethau
|
|
7
7
|
module ClassMethods
|
8
8
|
def default_value_of attribute_name, default_value = nil, &builder
|
9
9
|
if default_value && block_given?
|
10
|
-
raise "Only provide one of default value or builder"
|
10
|
+
raise "Only provide one of default value or builder"
|
11
11
|
end
|
12
12
|
|
13
13
|
getter_with_default = "#{attribute_name}_with_default"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Pethau
|
2
|
+
module LogExceptionsFrom
|
3
|
+
def self.included into
|
4
|
+
into.extend ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
def log_exceptions_from *method_names
|
9
|
+
method_names.each do |method_name|
|
10
|
+
method_with_exception_logging = "#{method_name}_with_exception_logging"
|
11
|
+
method_without_exception_logging = "#{method_name}_without_exception_logging"
|
12
|
+
|
13
|
+
alias_method method_without_exception_logging, method_name
|
14
|
+
define_method method_with_exception_logging do |*args|
|
15
|
+
begin
|
16
|
+
send method_without_exception_logging, *args
|
17
|
+
rescue Exception => e
|
18
|
+
raise unless defined? logger
|
19
|
+
logger.error [ e.message, e.backtrace ].flatten.join("\n")
|
20
|
+
raise
|
21
|
+
end
|
22
|
+
end
|
23
|
+
alias_method method_name, method_with_exception_logging
|
24
|
+
end
|
25
|
+
end
|
26
|
+
private :log_exceptions_from
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
data/lib/pethau/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pethau
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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: 2011-10-
|
12
|
+
date: 2011-10-27 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: Extracting a bunch of code that we use across our projects. In less awesome
|
15
15
|
teams this would be the utility package.
|
@@ -21,6 +21,7 @@ extra_rdoc_files: []
|
|
21
21
|
files:
|
22
22
|
- lib/pethau/default_value_of.rb
|
23
23
|
- lib/pethau/initialize_with.rb
|
24
|
+
- lib/pethau/log_exceptions_from.rb
|
24
25
|
- lib/pethau/private_attr_accessor.rb
|
25
26
|
- lib/pethau/version.rb
|
26
27
|
- lib/pethau.rb
|