fixme 1.1.1 → 1.1.2

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: ee77f3652407beeb65a9b00c0beda6ebebb970a0
4
- data.tar.gz: e1938b519c3a1c98516abfd491ee290a65d38a78
3
+ metadata.gz: 5918a9a8d6c7ed2b50dffce574ddd35938855694
4
+ data.tar.gz: 174d74e39c33019eeb487ad97cf58c827a0618dd
5
5
  SHA512:
6
- metadata.gz: 7904af13220ecc11babdea9ab748f3ce88af3008ad94ce1e3363a7da187377bf871dc41803fd0a06c0748fb8d5e582a7e453979543fda24e304d257be4d2a13f
7
- data.tar.gz: def4c437d9ccdfe486c5cc3c4a2c332f1e8f42433fc59e0a303d7c22c39c5bb86426c74466be78acf84f4e1f300412c07c71f19f91cef38d340cafc59f69db92
6
+ metadata.gz: 42f862c20eb8fd60cbc2bd6fcefbaaee13ed635d0f4ebefe84167b13f9c8a3df23eeac57c5ae60c40ec1394f2b4ff029d5fee13d9f0a90138312da6e9977fa4a
7
+ data.tar.gz: 3bec830317f532f8e923ce858921f3ad12dc1a65ddeb753c8d4771ef0f38950ca672ee36788a368d44c7d65b515b8f92ddbe9eb1aa8ac0313a25124a6a36a010
data/fixme.gemspec CHANGED
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency "bundler", "~> 1.5"
21
21
  spec.add_development_dependency "rake"
22
22
  spec.add_development_dependency "rspec"
23
+ spec.add_development_dependency "timecop"
23
24
  end
data/lib/fixme.rb CHANGED
@@ -13,9 +13,18 @@ module Fixme
13
13
 
14
14
  raw_date, message = date_and_message.split(": ", 2)
15
15
  due_date = Date.parse(raw_date)
16
- return if Date.today < due_date
17
16
 
18
- raise UnfixedError, "Fix by #{due_date}: #{message}"
17
+ raise_if_due = -> {
18
+ if Date.today >= due_date
19
+ raise UnfixedError, "Fix by #{due_date}: #{message}"
20
+ end
21
+ }
22
+
23
+ if defined?(Timecop)
24
+ Timecop.return(&raise_if_due)
25
+ else
26
+ raise_if_due.call
27
+ end
19
28
  end
20
29
  end
21
30
  end
data/lib/fixme/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fixme
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
data/spec/fixme_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "fixme"
2
+ require "timecop"
2
3
 
3
4
  describe Fixme, "#FIXME" do
4
5
  it "raises after the given date" do
@@ -34,55 +35,73 @@ describe Fixme, "#FIXME" do
34
35
  }.to raise_error(Fixme::UnfixedError)
35
36
  end
36
37
 
38
+ it "is not fooled by the Timecop gem" do
39
+ future_date = Date.today + 2
40
+
41
+ Timecop.travel(future_date) do
42
+ expect {
43
+ FIXME "#{future_date}: Travel back in time."
44
+ }.not_to raise_error
45
+ end
46
+ end
47
+
37
48
  context "when a Rails environment is detected" do
38
49
  before do
39
50
  stub_const("Rails", double)
40
51
  end
41
52
 
42
53
  it "raises in the 'test' environment" do
43
- Rails.stub(env: "test")
54
+ stub_rails_env "test"
44
55
  expect_to_raise
45
56
  end
46
57
 
47
58
  it "raises in the 'development' environment" do
48
- Rails.stub(env: "development")
59
+ stub_rails_env "development"
49
60
  expect_to_raise
50
61
  end
51
62
 
52
63
  it "does not raise in other environments" do
53
- Rails.stub(env: "production")
64
+ stub_rails_env "production"
54
65
  expect_not_to_raise
55
66
  end
56
67
  end
57
68
 
58
69
  context "when a Rack environment is detected" do
59
70
  before do
60
- ENV.stub(:[]).with("DO_NOT_RAISE_FIXMES")
71
+ stub_env "DO_NOT_RAISE_FIXMES", nil
61
72
  end
62
73
 
63
74
  it "raises in the 'test' environment" do
64
- ENV.stub(:[]).with("RACK_ENV").and_return("test")
75
+ stub_env "RACK_ENV", "test"
65
76
  expect_to_raise
66
77
  end
67
78
 
68
79
  it "raises in the 'development' environment" do
69
- ENV.stub(:[]).with("RACK_ENV").and_return("development")
80
+ stub_env "RACK_ENV", "development"
70
81
  expect_to_raise
71
82
  end
72
83
 
73
84
  it "does not raise in other environments" do
74
- ENV.stub(:[]).with("RACK_ENV").and_return("production")
85
+ stub_env "RACK_ENV", "production"
75
86
  expect_not_to_raise
76
87
  end
77
88
  end
78
89
 
79
90
  it "does not raise when the DO_NOT_RAISE_FIXMES environment variable is set" do
80
- ENV.stub(:[]).with("DO_NOT_RAISE_FIXMES").and_return("true")
91
+ stub_env "DO_NOT_RAISE_FIXMES", true
81
92
  expect_not_to_raise
82
93
  end
83
94
 
84
95
  private
85
96
 
97
+ def stub_rails_env(value)
98
+ allow(Rails).to receive(:env).and_return(value)
99
+ end
100
+
101
+ def stub_env(name, value)
102
+ allow(ENV).to receive(:[]).with(name).and_return(value)
103
+ end
104
+
86
105
  def expect_to_raise
87
106
  expect { FIXME "2013-12-31: X" }.to raise_error(Fixme::UnfixedError)
88
107
  end
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: 1.1.1
4
+ version: 1.1.2
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-04-04 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: timecop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description:
56
70
  email:
57
71
  - henrik@nyh.se