fixme 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e1ab3e11f1dd62c6d26791d1278dc0f1b0da2b4
4
- data.tar.gz: 6b702750cb9cf2598a711e0d99be151d56c1bde5
3
+ metadata.gz: 96b8966891c13c24139acc8161981a32ba5d706e
4
+ data.tar.gz: 259f2d4b7a5ced3f535d23bbc0a3069b7b562375
5
5
  SHA512:
6
- metadata.gz: 8b1038bbedf63b7c176638a1772f3574dc31408b885244432dd0b70f431ebcb18980f8b9e513f180005e39cf76cd0d14e3fbc22272dd0a084f71932062346116
7
- data.tar.gz: 19e4702838cb5434f1dbd9c35854f4835e91354591821a5457fb610dc5e823272f6cd23c6a2d9139daba0b86b21a1d06042f7f12570b68e8fcc907e0fa1e9de1
6
+ metadata.gz: 6be5a85894fefba3f8128d92ad678751b8a202b1e6e78fe4a6ed4d3b2c503f21b94189d6817972ef5bd9a8ae2e4c5d0e60f87ed381bd08f8954bf5b4cae3d359
7
+ data.tar.gz: e0f9fcadba73e6d037fff17a227d9fca21a76c5f2b06ec429fde7ba80a30381bddca3614a2c85a4315896fa34d4fc0652509439e256e2ae1fbbb2ff1019a711b
data/README.md CHANGED
@@ -40,7 +40,19 @@ Fixme.explode_with do |details|
40
40
  end
41
41
  ```
42
42
 
43
- There's also `details.date`, `details.message` and `details.backtrace`.
43
+ There's also `details.date`, `details.due_days_ago`, `details.message` and `details.backtrace`.
44
+
45
+ You can call `Fixme.raise_from(details)` to get the default behavior, if you want that under certain conditions:
46
+
47
+ ```
48
+ Fixme.explode_with do |details|
49
+ if details.due_days_ago > 5
50
+ Fixme.raise_from(details)
51
+ else
52
+ YourOwnCodeOrSomeLibrary.notify_chat(details.full_message)
53
+ end
54
+ end
55
+ ```
44
56
 
45
57
  ### Selectively disable
46
58
 
@@ -3,14 +3,15 @@ require "date"
3
3
 
4
4
  module Fixme
5
5
  UnfixedError = Class.new(StandardError)
6
- Details = Struct.new(:full_message, :backtrace, :date, :message)
7
6
 
8
- DEFAULT_EXPLODER = proc { |details| raise(UnfixedError, details.full_message, details.backtrace) }
9
-
10
- def self.reset_configuration
11
- explode_with(&DEFAULT_EXPLODER)
7
+ Details = Struct.new(:full_message, :backtrace, :date, :message) do
8
+ def due_days_ago
9
+ Date.today - date
10
+ end
12
11
  end
13
12
 
13
+ DEFAULT_EXPLODER = ->(details) { raise(UnfixedError, details.full_message, details.backtrace) }
14
+
14
15
  def self.explode_with(&block)
15
16
  @explode_with = block
16
17
  end
@@ -21,6 +22,14 @@ module Fixme
21
22
  @explode_with.call Details.new(full_message, backtrace, date, message)
22
23
  end
23
24
 
25
+ def self.raise_from(details)
26
+ DEFAULT_EXPLODER.call(details)
27
+ end
28
+
29
+ def self.reset_configuration
30
+ explode_with(&DEFAULT_EXPLODER)
31
+ end
32
+
24
33
  reset_configuration
25
34
  end
26
35
 
@@ -1,3 +1,3 @@
1
1
  module Fixme
2
- VERSION = "3.0.0"
2
+ VERSION = "3.1.0"
3
3
  end
@@ -26,7 +26,7 @@ describe Fixme, "#FIXME" do
26
26
  }.not_to raise_error
27
27
  end
28
28
 
29
- it "truncates the backtrace to exclude itself" do
29
+ it "truncates the backtrace to exclude the library itself" do
30
30
  begin
31
31
  FIXME "2013-12-31: Remove this stuff."
32
32
  rescue => e
@@ -119,6 +119,19 @@ describe Fixme, "#FIXME" do
119
119
  expect(log.date).to eq Date.new(2013, 12, 31)
120
120
  expect(log.message).to eq "Do not explode."
121
121
  expect(log.backtrace.first).to include "fixme_spec.rb:"
122
+
123
+ expect(log.due_days_ago).to eq(Date.today - log.date)
124
+ expect(log.due_days_ago).to be > 0
125
+ end
126
+
127
+ it "lets you use Fixme.raise_from in configuration" do
128
+ Fixme.explode_with do |details|
129
+ Fixme.raise_from(details)
130
+ end
131
+
132
+ expect {
133
+ FIXME "2013-12-31: Do not explode."
134
+ }.to raise_error(Fixme::UnfixedError, "Fix by 2013-12-31: Do not explode.")
122
135
  end
123
136
 
124
137
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fixme
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrik Nyh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2014-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler