cutter 0.0.3 → 0.5.0

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. data/README.rdoc +30 -13
  2. data/lib/cutter/inspection.rb +14 -8
  3. metadata +3 -3
@@ -1,30 +1,47 @@
1
1
  = cutter
2
2
 
3
- For now it is two-methods-gem, I use a lot for simple debugging & performance measuring purposes.
4
-
3
+ For now it is two-methods-gem I use a lot for simple debugging & performance measuring purposes.
5
4
  Include it into Gemfile:
6
- gem 'cutter'
5
+ gem 'cutter'
7
6
 
8
7
  Methods are:
9
8
 
10
- I) As inspect! method to any of your methods:
11
- def your_method *args
12
- inspect!(local_variables,binding) # this string exactly!
9
+ ==I) #inspect!
10
+
11
+ Insert #inspect! method into any of your methods:
12
+ def your_method *your_args
13
+ inspect! {} # this string exactly!
13
14
  ...
14
15
  end
15
-
16
+
16
17
  your_method(1,"foo",:bar) =>
17
18
  method `your_method'
18
19
  variables:
19
20
  args: [1, "foo", :bar]
20
21
 
22
+ or in more rigorous way:
23
+
24
+ def your_another_method(first, second, third, &block)
25
+ inspect!(binding)
26
+ end
27
+
28
+ your_another_method(1,"foo",:bar) =>
29
+ method `your_another_method'
30
+ variables:
31
+ first: 1
32
+ second: "foo"
33
+ third: :bar
34
+ block:
35
+
21
36
 
22
- Gives simple but nice trace for inspection: method's name, local_variables(they include args passed to method)
37
+ Gives simple but nice trace for inspection: method's name and args that were passed to method
23
38
 
24
39
  If you want all #inspect! methods fall silent at once, use
25
- Cutter::Inspection.quiet!
40
+ Cutter::Inspection.quiet!
41
+ To make them sound again do
42
+ Cutter::Inspection.loud!
26
43
 
27
- II)
44
+ ==II) #stamper
28
45
  def your_method
29
46
  stamper("testing pieces of code") do
30
47
  piece_of_code #1
@@ -50,8 +67,8 @@ II)
50
67
  }
51
68
  end
52
69
 
53
- Acts as self.benchmark{} or Benchmark.measure{} but with stamps in any position in block executed, and it is much simpler
54
- to write it quickly than all these Measure-dos.
70
+ Acts as self.benchmark{} (in Rails) or Benchmark.measure{} (common Ruby) but with stamps in any position in block executed.
71
+ It is much simpler to write it quickly than all these Measure-dos.
55
72
 
56
73
  == Contributing to cutter
57
74
 
@@ -65,6 +82,6 @@ to write it quickly than all these Measure-dos.
65
82
 
66
83
  == Copyright
67
84
 
68
- Copyright (c) 2011 stanislaw. See LICENSE.txt for
85
+ Copyright (c) 2011 Stanislaw Pankevich. See LICENSE.txt for
69
86
  further details.
70
87
 
@@ -1,12 +1,14 @@
1
1
  module Cutter
2
2
  class Inspection
3
- attr_accessor :quiet
4
-
5
3
  class << self
6
4
  def quiet!
7
5
  @quiet = true
8
6
  end
9
7
 
8
+ def loud!
9
+ @quiet = nil
10
+ end
11
+
10
12
  def quiet?
11
13
  @quiet
12
14
  end
@@ -18,16 +20,20 @@ class Object
18
20
  # For now inspect! method only may be used with two arguments (local_variables, binding)
19
21
  # Binding is a Ruby class: http://www.ruby-doc.org/core/classes/Binding.html
20
22
 
21
- def inspect! _local_variables, _binding
23
+ def inspect! _binding = nil, &block
22
24
  return true if Cutter::Inspection.quiet?
23
- puts "method: `#{caller[0][/`([^']*)'/,1]}'"
25
+ raise "Try binding as argument or wrap method content into block!" if (!block_given?&&!_binding)
26
+ _binding ||= block.binding
27
+ puts "method: `#{caller_method_name}'"
24
28
  puts %{ variables:}
25
- _local_variables.map do |lv|
26
- puts %{ #{lv}: #{_binding.eval(lv.to_s)} }
29
+ eval('local_variables',_binding).map do |lv|
30
+ puts %{ #{lv}: #{eval(lv.to_s, _binding)} }
27
31
  end
32
+ yield if block_given?
28
33
  end
29
34
 
30
- def test_inspector
31
- puts "Cutter is working..."
35
+ def caller_method_name(level = 1)
36
+ caller[level][/`([^']*)'/,1].to_sym
32
37
  end
38
+
33
39
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cutter
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.5.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - stanislaw
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-22 00:00:00 +03:00
13
+ date: 2011-07-15 00:00:00 +03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- hash: 301476861
112
+ hash: 951765971
113
113
  segments:
114
114
  - 0
115
115
  version: "0"