entraceable 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c0bb3336738bce3e63b6758223666d3418fca0b
4
- data.tar.gz: b160592b2583cefcfe30d7823fdbdeefb8b3b5bf
3
+ metadata.gz: 934afb5852c54d81af8a892c47afaee5e26cb32b
4
+ data.tar.gz: 4f06391b106ecf2a9a5110f8bff908c5aad335f2
5
5
  SHA512:
6
- metadata.gz: d68e013fcef33b3997824c2641a8a9fd98215d0651d8a8982bde1bb6de80d2ae5a01f65c601d75c65b2d471d12f68fa52db101c99fb223377ff52f5ac600a389
7
- data.tar.gz: b86f4f74fa95367f97127cc29d3771670f59b19a9cd3e999f91189227adb8ddb0f2f7ad54f6abd1cf6378eab466cf18150341a32e6ed7e1b7b4ec7ec9c10455e
6
+ metadata.gz: 8e24c4d00ab12fe70a30e72eaeaba4faa81d32b4755cd8816a2545de63f2d9ea5e0c74548ca4d6957515e9ebce6de59edb9da2ba06bb3418e15f1e9b62af2e22
7
+ data.tar.gz: c00a1ccfcd74ba297d9b9fc6b5b18b7d3ef16aa6f179efd347ad41dff3c2d7e90648fb7d33c57b8987d458dc4a1921a05af1f7265c7d7e00c614e3d7d571a047
@@ -1,3 +1,3 @@
1
1
  module Entraceable
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/entraceable.rb CHANGED
@@ -2,20 +2,25 @@ require "entraceable/version"
2
2
 
3
3
  module Entraceable
4
4
  def entraceable(method, tag: nil, level: :debug)
5
- alias_name = Entraceable.alias_name_for method
5
+ alias_name = alias_name_for method
6
6
  class_eval <<-EOS if Rails.env.development?
7
7
  alias_method :#{alias_name}, :#{method}
8
8
  def #{method}(*args)
9
- Rails.logger.tagged(#{tag}) {Rails.logger.send :#{level}, %Q(#{method} is called with arguments, \#\{args\})}
10
- send(:#{alias_name}, *args).tap do |result|
11
- Rails.logger.tagged(#{tag}) {Rails.logger.send :#{level}, %Q(#{method} returns \#\{result\})}
9
+ indent = " " * ((@indent_level ||= 0) * 2)
10
+ puts = ->c{Rails.logger.tagged(%Q(#{tag})) {Rails.logger.send :#{level}, indent + c}}
11
+ puts.call %Q(#{method} is called with arguments, \#\{args.map(&:inspect).join(", ")\})
12
+ @indent_level += 1
13
+ begin
14
+ send(:#{alias_name}, *args).tap{|result|puts.call %Q(#{method} returns \#\{result\})}
15
+ ensure
16
+ @indent_level -= 1
12
17
  end
13
18
  end
14
19
  EOS
15
20
  end
16
21
 
17
22
  def distraceable(method)
18
- alias_name = Entraceable.alias_name_for method
23
+ alias_name = alias_name_for method
19
24
  class_eval <<-EOS if Rails.env.development?
20
25
  remove_method :#{method}
21
26
  alias_method :#{method}, :#{alias_name}
@@ -24,8 +29,8 @@ module Entraceable
24
29
  end
25
30
 
26
31
  private
27
- def self.alias_name_for(method)
28
- ["original", method.to_s.sub(/\[\]/, "indexer")].join("_").intern
32
+ def alias_name_for(method)
33
+ ["original", to_s, method.to_s.sub(/\[\]/, "indexer")].join("_").intern
29
34
  end
30
35
  end
31
36
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entraceable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keiji Yoshida