activetodo 0.0.2 → 0.0.3

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: bb46c5773e643c97afe3388f93bd9216eb0c01a0
4
- data.tar.gz: 69d339ae2c71ad28df1ba11e438ecc60eb3b018c
3
+ metadata.gz: 30e34aacbfddd41896e87811832fcb596e6bef87
4
+ data.tar.gz: d4a34e7e3b84356653fb173a4d7949fb001e1623
5
5
  SHA512:
6
- metadata.gz: 57300628de5eba3ee3f7128ac25bc580d267b9e198ab940c4db0a3ce02333007a1357a76cd6bc4d82164cce7d153007511066a083f2cded64dbe60587238bf89
7
- data.tar.gz: 7a21708d3eb0a09d77809454358ab0a47ccb453a45f408b8d33e043d6752a6e1306608f51fd638fbd3e0d4bae23d7a247d71b1919ecf4a66949f988e88254cb1
6
+ metadata.gz: 186285aac96fc6b24828f2cd931cb51bd1149316547f2d15667b6a1906b6c6d9f5c343ebee780c50a5e4fbf0fe3a0f6bf3ed044f95a5660cdda0947e824dd2ed
7
+ data.tar.gz: 16dfab5227fccefe7c759bc59adad3d8d8af456afa6c518aeabed8f48d96cf441d8ff16787f0d427db77253d550236e2ddb03d58866523d6fc77de881dcbabc4
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.rbc
3
3
  .bundle
4
4
  .config
5
+ Gemfile.lock
5
6
  coverage
6
7
  InstalledFiles
7
8
  lib/bundler/man
data/README.md CHANGED
@@ -27,17 +27,35 @@ Use anywhere in code:
27
27
  # Generic TODO without deadline
28
28
  TODO 'Add specs'
29
29
 
30
- # Raises error after 2014-01-01
30
+ # After 2014-01-01 it will `Rails.logger.warn` or `puts` if outside Rails
31
31
  FIXME 'Certificate will expire soon', deadline: '2014-01-01'
32
32
 
33
- # After 2014-02-28, does Rails.logger.warn in production, raises error in development / test
34
- XXX 'Dirty hack, must refactor', deadline: '2014-02-28', warn_only: Rails.env.production?
33
+ # Raises error after 2014-02-28
34
+ XXX 'Dirty hack, must refactor', deadline: '2014-02-28', warn_only: false
35
35
  ```
36
36
 
37
37
  `TODO`, `FIXME` and `XXX` all have same interface: `TODO(<message>, [options_hash])`
38
38
 
39
39
  You can use `activetodo` with or without Rails.
40
40
 
41
+ ## Configuring default deadline behavior
42
+
43
+ By default, ActiveTodo will not raise errors when deadline is reached. You may want to enabled that
44
+ depending on your environment. In Rails, do that by creating `config/initializers/activetodo.rb`
45
+ with following lines:
46
+
47
+ ```ruby
48
+ ActiveTodo.configure do |config|
49
+ # Log deadline warnings in Production, raise errors in Development / Test
50
+ config.warn_only = Rails.env.production?
51
+ end
52
+ ```
53
+
54
+ You can still override the default configuration by passing `warn_only` option:
55
+ ```ruby
56
+ TODO 'Remove this internal testing controller', deadline: '2013-05-01', warn_only: false
57
+ ```
58
+
41
59
  ## Contributing
42
60
 
43
61
  1. Fork it
data/lib/activetodo.rb CHANGED
@@ -2,6 +2,23 @@ require 'activetodo/version'
2
2
 
3
3
  module ActiveTodo
4
4
 
5
+ class Configuration
6
+ class << self
7
+ def warn_only?(options = {})
8
+ return options[:warn_only] if options.keys.include?(:warn_only)
9
+ @@warn_only ||= false
10
+ end
11
+
12
+ def warn_only=(condition)
13
+ @@warn_only = condition
14
+ end
15
+ end
16
+ end
17
+
18
+ def self.configure
19
+ yield Configuration if block_given?
20
+ end
21
+
5
22
  class PrivateMethods
6
23
  class << self
7
24
  def log_message(message)
@@ -22,7 +39,7 @@ module ActiveTodo
22
39
  if deadline && DateTime.now >= deadline
23
40
  message = "Deadline reached for \"#{what}\" (#{options[:deadline]})"
24
41
 
25
- if options[:warn_only]
42
+ if Configuration.warn_only?(options)
26
43
  PrivateMethods.log_message(message)
27
44
  else
28
45
  raise message
@@ -1,3 +1,3 @@
1
1
  module ActiveTodo
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -46,6 +46,25 @@ describe ActiveTodo::KernelMethods do
46
46
 
47
47
  subject { FIXME 'Refactor shit', deadline: '2014-01-01', warn_only: true }
48
48
 
49
+ context 'preconfigured' do
50
+
51
+ before { ActiveTodo.configure { |c| c.warn_only = true } }
52
+
53
+ context 'without override' do
54
+ subject { FIXME 'Refactor shit', deadline: '2014-01-01' }
55
+
56
+ before { ActiveTodo::PrivateMethods.should_receive(:log_message) }
57
+
58
+ specify { expect { subject }.not_to raise_error }
59
+ end
60
+
61
+ context 'with override' do
62
+ subject { FIXME 'Refactor shit', deadline: '2014-01-01', warn_only: false }
63
+
64
+ specify { expect { subject }.to raise_error }
65
+ end
66
+ end
67
+
49
68
  context 'outside Rails' do
50
69
  before { ActiveTodo::PrivateMethods.should_receive(:log_message) }
51
70
  specify { expect { subject }.not_to raise_error }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activetodo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Varaneckas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-27 00:00:00.000000000 Z
11
+ date: 2013-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,7 +92,6 @@ files:
92
92
  - .rspec
93
93
  - .travis.yml
94
94
  - Gemfile
95
- - Gemfile.lock
96
95
  - LICENSE
97
96
  - README.md
98
97
  - Rakefile
data/Gemfile.lock DELETED
@@ -1,58 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- activetodo (0.0.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- coderay (1.0.9)
10
- coveralls (0.6.9)
11
- multi_json (~> 1.3)
12
- rest-client
13
- simplecov (>= 0.7)
14
- term-ansicolor
15
- thor
16
- diff-lcs (1.2.4)
17
- method_source (0.8.2)
18
- mime-types (1.25)
19
- multi_json (1.8.0)
20
- pry (0.9.12.2)
21
- coderay (~> 1.0.5)
22
- method_source (~> 0.8)
23
- slop (~> 3.4)
24
- pry-nav (0.2.3)
25
- pry (~> 0.9.10)
26
- rake (10.1.0)
27
- rest-client (1.6.7)
28
- mime-types (>= 1.16)
29
- rspec (2.14.1)
30
- rspec-core (~> 2.14.0)
31
- rspec-expectations (~> 2.14.0)
32
- rspec-mocks (~> 2.14.0)
33
- rspec-core (2.14.5)
34
- rspec-expectations (2.14.2)
35
- diff-lcs (>= 1.1.3, < 2.0)
36
- rspec-mocks (2.14.3)
37
- simplecov (0.7.1)
38
- multi_json (~> 1.0)
39
- simplecov-html (~> 0.7.1)
40
- simplecov-html (0.7.1)
41
- slop (3.4.6)
42
- term-ansicolor (1.2.2)
43
- tins (~> 0.8)
44
- thor (0.18.1)
45
- timecop (0.6.3)
46
- tins (0.9.0)
47
-
48
- PLATFORMS
49
- ruby
50
-
51
- DEPENDENCIES
52
- activetodo!
53
- bundler (~> 1.3)
54
- coveralls
55
- pry-nav
56
- rake
57
- rspec
58
- timecop