letters 0.3.0 → 0.3.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.
data/README.md CHANGED
@@ -193,10 +193,10 @@ The `o` method takes options, too, so you can add a prefix message to the output
193
193
  Kill
194
194
  </td>
195
195
  <td>
196
- :max
196
+ :on
197
197
  </td>
198
198
  <td>
199
- raises Letters::KillError after a maximum number of calls
199
+ raises Letters::KillError at a specified number of calls
200
200
  </td>
201
201
  </tr>
202
202
 
@@ -311,7 +311,7 @@ See the [full documentation](http://lettersrb.com/api) for examples and more det
311
311
 
312
312
  ### Configuration ###
313
313
 
314
- Lastly, you can tune and tweak each Letters method to default to your own tastes. Want to name put files somewhere else? No problem. Don't like YAML? Default `f` to use Pretty Print instead! The world of defaults is your oyster.
314
+ For maximum productivity, you can tune and tweak each Letters method to fit your own tastes. Want to name put files somewhere else? No problem. Don't like YAML? Default `f` to use Pretty Print instead! The world of defaults is your oyster.
315
315
 
316
316
  ```ruby
317
317
  Letters.config do
@@ -7,7 +7,7 @@ module Letters
7
7
  d1: { dup: false },
8
8
  d2: { format: "ap" },
9
9
  f: { format: "yaml", name: "log" },
10
- k: { max: 0 },
10
+ k: { on: 0 },
11
11
  l: { level: "info", format: "yaml" },
12
12
  o: { format: "ap", stream: $stdout },
13
13
  t: { time_format: "millis" }
@@ -1,6 +1,7 @@
1
1
  require "letters/config"
2
2
  require "letters/helpers"
3
3
  require "letters/diff"
4
+ require "letters/kill"
4
5
  require "letters/time_formats"
5
6
  require "letters/empty_error"
6
7
  require "letters/kill_error"
@@ -96,13 +97,20 @@ module Letters
96
97
  # Kill
97
98
  def k(opts={})
98
99
  opts = Letters.defaults_with(:k, opts)
100
+
101
+ # Support :max option until I can deprecate it
102
+ opts[:on] ||= opts[:max]
103
+
99
104
  opts.merge! :error_class => KillError
100
105
  tap do |o|
101
- @letters_kill_count ||= 0
102
- if @letters_kill_count >= opts[:max]
103
- raise opts[:error_class]
106
+ Letters.kill_count ||= 0
107
+
108
+ if Letters.kill_count >= opts[:on]
109
+ Letters.kill_count = 0
110
+ o.a(opts) { false }
104
111
  end
105
- @letters_kill_count += 1
112
+
113
+ Letters.kill_count += 1
106
114
  end
107
115
  end
108
116
 
@@ -0,0 +1,9 @@
1
+ module Letters
2
+ def self.kill_count=(count)
3
+ @@kill_count = count
4
+ end
5
+
6
+ def self.kill_count
7
+ @@kill_count if defined?(@@kill_count)
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Letters
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -147,29 +147,26 @@ module Letters
147
147
  end
148
148
 
149
149
  describe "#k (kill)" do
150
- it 'raises a KillError immediately by default' do
150
+ it "raises a KillError immediately by default" do
151
151
  lambda { hash.k }.should raise_error(KillError)
152
152
  end
153
153
 
154
- it 'does not raises if number of calls are below max' do
155
- lambda { hash.k(max: 1) }.should_not raise_error
154
+ it "does not raises if number of calls are below the specified number" do
155
+ lambda { hash.k(:on => 1) }.should_not raise_error
156
156
  end
157
157
 
158
- it 'raises a KillError if number of calls is above max' do
158
+ it "raises a KillError if number of calls has reached the specified number" do
159
159
  count = 0
160
+ hash.k(:on => 2)
160
161
  lambda do
161
- 10.times do
162
- hash.k(max: 5)
163
- count += 1
164
- end
162
+ hash.k(:on => 2)
165
163
  end.should raise_error(KillError)
166
- count.should eq(5)
167
164
  end
168
165
  end
169
166
 
170
167
  describe "#l (log)" do
171
168
  it "logs the object if a logger is present and then returns the object" do
172
- logger = double 'logger'
169
+ logger = double "logger"
173
170
  logger.should_receive(:info).with(hash.to_yaml)
174
171
  hash.should_receive(:logger).and_return(logger)
175
172
  hash.l
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: letters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-07 00:00:00.000000000Z
12
+ date: 2012-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: awesome_print
16
- requirement: &70172816319040 !ruby/object:Gem::Requirement
16
+ requirement: &70186112051180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70172816319040
24
+ version_requirements: *70186112051180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70172816318600 !ruby/object:Gem::Requirement
27
+ requirement: &70186112050660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70172816318600
35
+ version_requirements: *70186112050660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: xml-simple
38
- requirement: &70172816318180 !ruby/object:Gem::Requirement
38
+ requirement: &70186112050040 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70172816318180
46
+ version_requirements: *70186112050040
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: colorize
49
- requirement: &70172816317760 !ruby/object:Gem::Requirement
49
+ requirement: &70186112049280 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70172816317760
57
+ version_requirements: *70186112049280
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: debugger
60
- requirement: &70172816317340 !ruby/object:Gem::Requirement
60
+ requirement: &70186112048660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70172816317340
68
+ version_requirements: *70186112048660
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: timecop
71
- requirement: &70172816316920 !ruby/object:Gem::Requirement
71
+ requirement: &70186112048240 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70172816316920
79
+ version_requirements: *70186112048240
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &70172816316500 !ruby/object:Gem::Requirement
82
+ requirement: &70186112047760 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70172816316500
90
+ version_requirements: *70186112047760
91
91
  description: Letters brings Ruby debugging into the 21st century. It leverages print,
92
92
  the debugger, control transfer, even computer beeps to let you see into your code's
93
93
  state.
@@ -102,6 +102,7 @@ files:
102
102
  - lib/letters/diff.rb
103
103
  - lib/letters/empty_error.rb
104
104
  - lib/letters/helpers.rb
105
+ - lib/letters/kill.rb
105
106
  - lib/letters/kill_error.rb
106
107
  - lib/letters/nil_error.rb
107
108
  - lib/letters/patch/core.rb