puppy 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +8 -8
  2. data/Rakefile +12 -0
  3. data/lib/puppy.rb +12 -2
  4. data/puppy.gemspec +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDhiYmI1ZjQzYWU0MjI4MDAxNmZkZmI4MTgzM2UwNmUzYjgxMzc1Nw==
4
+ NzFmYTNiZDJkODQwODBiMTMyNGEzODMzODdmYjUxYWNlMDUxMWQyYw==
5
5
  data.tar.gz: !binary |-
6
- ZWE1NjBhZWY5MDJlNDQ0ZjNmZWY1ZTUwNDBjZmJjMjRmZmQyNjExYw==
6
+ ZmJiNDRiOGVhNjlmMThiNmQzZWNiMjUxNmM0ZGFhZTI4MmZkNGE2OQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NTI3ZWVmZDRjMWMwYzkyNmQ1ODlkNmRkM2ViZjdjYmJkM2JkZjMxNTk3NGI4
10
- NDJmNjVkZjA0MDQ2ODUzMWVlYjRkYjc3YzJlMmExYmIxOTJkYWRiNmMxNDMy
11
- YmM3ZWNkOGJlNTZhNWNlMmQ3NTAzYmM3MGUwNmI5NjI1ZDE1ZmY=
9
+ NDRlNjNkOTdiMzRkYzgxNzMxYjgyNDc0MGEwZjM3YzNiYTE1N2QwYjc1MjU4
10
+ NjYwMjc1YjE1YzlkYmZiM2RlY2NhNDc2Zjc5ZDk5MTI3NDdiYWFkYjMxYjAz
11
+ ODZhYzk0MWRkMjA1MDFjODFkZjBmOTI3ODY3Y2Y4YzBiYjU1Y2E=
12
12
  data.tar.gz: !binary |-
13
- MjI0ZDZkOTMzYzI5ZjBjNTAwMTM4Y2ZhMDg2NDQ2N2VhNGU4MDI4MDlkMjM2
14
- OGVmNTViNmY4NGJkNTcxOTVkYTg1NGMzMjIxZWQ5ZjBkNDNmNTQxOTdlMjY2
15
- NmNmNTVjYTg3ZWZjOTBjZWVjYmFkNDljYzI5YjUwODEwMWM3N2I=
13
+ Zjg5MjFkMzUzZWUyMzI3NWNhZTZkZWM3ZTNlZmY4OTU2YzExY2Y5MzU1ZTM3
14
+ MTA5YTdmNTZlMjhlMjliODkyODlmNmZkNDFiNjNlODMwYmUxYTFhYzJjMDMx
15
+ MzkxYmYwOWVhMjY0NGY2OGY3ZGExNGMzMjVkNjFkNzM5NmExNDU=
data/Rakefile CHANGED
@@ -1,3 +1,15 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new(:test) do |test|
4
+ test.libs << 'test'
5
+ test.pattern = 'test/**/test_*.rb'
6
+ test.warning = false
7
+ test.verbose = true
8
+ end
9
+
10
+ task :default => :test
11
+
1
12
  require 'rake/clean'
13
+
2
14
  CLEAN.include "**/*.rbc"
3
15
  CLEAN.include "**/.DS_Store"
@@ -65,6 +65,8 @@ module Puppy
65
65
  :stream => STDERR
66
66
  }
67
67
 
68
+ # Initializes the traced object instance with the original instance,
69
+ # options and conditional tracing block.
68
70
  def initialize( obj, opts = {}, &block )
69
71
  @is_puppy_traced = true
70
72
  @object, @opts, @block = obj, DEFAULTS.merge(opts), block
@@ -77,20 +79,28 @@ module Puppy
77
79
  @object.send :inspect
78
80
  end
79
81
 
82
+ # Make the user capable of tracing/untracing the object programmatically
83
+ # without creating a new TracedObject instance.
84
+
85
+ # Enables tracing.
80
86
  def trace
81
87
  @is_puppy_traced = true
82
88
  end
83
89
 
90
+ # Disables tracing.
84
91
  def untrace
85
92
  @is_puppy_traced = false
86
93
  end
87
94
 
88
- # Here it goes, trace it baby!
95
+ # Here it goes, every method invoked on this object will trigger
96
+ # TracedObject#method_missing since we've undefined every instance
97
+ # method. This will make us able to print method call and arguments,
98
+ # and then invoke the original method using Object#send on the
99
+ # original instance.
89
100
  def method_missing( m, *args )
90
101
  begin
91
102
  if ( @block == nil || @block.call( @object, m, *args ) == true ) && @is_puppy_traced == true
92
103
  @stream << '# '
93
-
94
104
  @stream << ' ' * caller.size unless !@opts[:indent]
95
105
 
96
106
  as = @opts[:as]
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{puppy}
3
- s.version = '1.0.1'
3
+ s.version = '1.0.2'
4
4
  s.license = "BSD"
5
5
 
6
6
  s.authors = ["Simone Margaritelli"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Margaritelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-15 00:00:00.000000000 Z
11
+ date: 2013-08-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Puppy is a tiny gem to perform easy object tracing and debugging.
14
14
  email: evilsocket@gmail.com