entraceable 0.1.5 → 0.1.6
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/entraceable.rb +17 -29
- data/lib/entraceable/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 71c64b7b1712139a5ac3d9001a5ea7d924d25cfb
|
|
4
|
+
data.tar.gz: 992b61bc63a6fcc1f2b50322d59d378306d96bd9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f5cfd81abec9e31baa97388da547689ed6ee8445f59cd03c775e4c5c8b427c43de9f81f12e7691f1b7328a4e844ed4bf90aeafbd246d081d7c4dd9b616ce2fc8
|
|
7
|
+
data.tar.gz: 9724a4f75b68e38c65d71fa51eb0cf374a15bb7d0bec0a78cb08634947b379e1f471313ba732f54197044d29998005c666f9c408c4e4d3d70474142090553613
|
data/README.md
CHANGED
data/lib/entraceable.rb
CHANGED
|
@@ -7,26 +7,6 @@ module Entraceable
|
|
|
7
7
|
class << self
|
|
8
8
|
attr_accessor :preference
|
|
9
9
|
|
|
10
|
-
def default_level
|
|
11
|
-
preference.default_level
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def default_level=(default_level)
|
|
15
|
-
preference.default_level = default_level
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def disable
|
|
19
|
-
preference.disable
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def enable
|
|
23
|
-
preference.enable
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def enabled?
|
|
27
|
-
preference.enabled?
|
|
28
|
-
end
|
|
29
|
-
|
|
30
10
|
def logger
|
|
31
11
|
@logger ||= Rails.logger
|
|
32
12
|
end
|
|
@@ -34,20 +14,30 @@ module Entraceable
|
|
|
34
14
|
def logger=(arg)
|
|
35
15
|
@logger = arg
|
|
36
16
|
end
|
|
17
|
+
|
|
18
|
+
def method_missing(method, *args, &block)
|
|
19
|
+
raise NoMethodError.new %q(undefined method `#{method}' for #{preference}:#{preference.class}) unless accept? method
|
|
20
|
+
preference.__send__ method, *args, &block
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
def accept?(method)
|
|
25
|
+
%w(default_level default_level= disable enable enabled?).map(&:intern).include? method
|
|
26
|
+
end
|
|
37
27
|
end
|
|
38
28
|
|
|
39
29
|
def entraceable(method, tag: nil, level: nil)
|
|
40
30
|
alias_name = alias_name_for method
|
|
31
|
+
__send__ :alias_method, alias_name, method
|
|
41
32
|
class_eval <<-EOS
|
|
42
|
-
|
|
43
|
-
def #{method}(*args)
|
|
33
|
+
def #{method}(*args, &block)
|
|
44
34
|
indent = " " * ((@indent_level ||= 0) * 2)
|
|
45
35
|
level = (#{level.inspect} || Entraceable.default_level).intern
|
|
46
|
-
puts = ->c{Entraceable.logger.tagged(%Q(#{tag})) {Entraceable.logger.
|
|
36
|
+
puts = ->c{Entraceable.logger.tagged(%Q(#{tag})) {Entraceable.logger.__send__ level, indent + c} if Entraceable.enabled?}
|
|
47
37
|
puts.call %Q(#{method} is called with arguments, \#\{args.map(&:inspect).join(", ")\})
|
|
48
38
|
@indent_level += 1
|
|
49
39
|
begin
|
|
50
|
-
|
|
40
|
+
__send__(:#{alias_name}, *args, &block).tap{|result|puts.call %Q(#{method} returns \#\{result\})}
|
|
51
41
|
ensure
|
|
52
42
|
@indent_level -= 1
|
|
53
43
|
end
|
|
@@ -57,11 +47,9 @@ module Entraceable
|
|
|
57
47
|
|
|
58
48
|
def distraceable(method)
|
|
59
49
|
alias_name = alias_name_for method
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
remove_method :#{alias_name}
|
|
64
|
-
EOS
|
|
50
|
+
__send__ :remove_method, method
|
|
51
|
+
__send__ :alias_method, method, alias_name
|
|
52
|
+
__send__ :remove_method, alias_name
|
|
65
53
|
end
|
|
66
54
|
|
|
67
55
|
private
|
data/lib/entraceable/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: entraceable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Keiji Yoshida
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-04-
|
|
11
|
+
date: 2017-04-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|