fixme 3.0.0 → 3.1.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.
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