plus_log 1.1.1

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. checksums.yaml +15 -0
  2. data/lib/plus_log.rb +39 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjAzZjgyYzEwNzMxYzNiMjc2ODY1Nzg0OGM0MjExOTE1MzdlZTM0ZA==
5
+ data.tar.gz: !binary |-
6
+ NzM0MWYzZDFiY2VkMGNlYzU1NTI1OWYxMzkyOTIzZWVmYWM5MTY3Yw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZWNlYzUwNTI5ZTdiZjExN2E5MzhlZDExOTYxNWQ2ZjVkMjczMjk1ZTA3MmQ1
10
+ MWZjNDVmZjRlODk3ZDJjMDA0MTRjNTFiMTI1YTlmNGYxOTkxOTJkMjI0M2M3
11
+ ZjMwMzJjMDhkMzYyOGMxZGI3YzRmOWFlNTNkMjc4MzczYTdkNTI=
12
+ data.tar.gz: !binary |-
13
+ NGJkYTY2YzFhNmU4YjZhMzZkNjU3MGRlNDBhMjZmMjUwMDc3MGMxMThlYzA5
14
+ MzU1NTA3NDRlMzMwNjQzYjZhZDM1NzEwNWNlYTNhZjUwMTEzZmZjODdhNzBl
15
+ M2Q4ZTYyNjMyODY0OGIzZmViYThkOTlhYWE3MWNiOGRlMTAzNDI=
data/lib/plus_log.rb ADDED
@@ -0,0 +1,39 @@
1
+ module Collector
2
+ class Object
3
+ def self.method_added(name)
4
+ Thread.current[:method] = [self, name]
5
+ super
6
+ end
7
+ end
8
+
9
+ def nil.+@
10
+ klass, name = Thread.current[:method]
11
+ method = klass.instance_method(name)
12
+ klass.send(:define_method, name) do |*args, &block|
13
+ Collector.log "enter #{name}"
14
+ res = Collector.new { method.bind(self).call(*args, &block) }
15
+ Collector.log "exit #{name}"
16
+ res
17
+ end
18
+ end
19
+
20
+ class Plus_log
21
+ def self.get_pretty_trace(thread = Thread.current)
22
+ thread[:log_buffer]
23
+ end
24
+
25
+ def self.log(string)
26
+ Thread.current[:log_buffer] ||= ""
27
+ depth = Thread.current[:depth] || 0
28
+ Thread.current[:log_buffer] += "#{'| ' * depth}#{string} [#{Time.now}]\n"
29
+ end
30
+
31
+ def self.new(&block)
32
+ Thread.current[:depth] ||= 0
33
+ Thread.current[:depth] += 1
34
+ res = block.call
35
+ Thread.current[:depth] -= 1
36
+ res
37
+ end
38
+ end
39
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: plus_log
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Sh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-29 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: iskender1990@yandex.ru
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/plus_log.rb
20
+ homepage:
21
+ licenses: []
22
+ metadata: {}
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
32
+ required_rubygems_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ requirements: []
38
+ rubyforge_project:
39
+ rubygems_version: 2.1.5
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: plus_log
43
+ test_files: []