fail_fast 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.txt CHANGED
@@ -1,3 +1,5 @@
1
+ 0.1.2
2
+ - added commands : only_if and skip_if
1
3
  0.1.1
2
4
  - added command : fail('message')
3
5
  0.1.0
data/README.markdown CHANGED
@@ -20,12 +20,17 @@ Early in your project boot sequence insert code like
20
20
  FailFast('path_to/config.yml', prefix=Rails.env).check do
21
21
  has_values_for 'author/fname', 'author/lname'
22
22
  has_email_for 'newsletter/to_address'
23
- has_url_for 'bug_tracker/url', :reachable => true
23
+
24
+ only_if Rails.env.production? do
25
+ has_url_for 'bug_tracker/url', :reachable => true
26
+ end
24
27
 
25
28
  directory_exists_for '/tmp'
26
29
  file_exists_for 'public/nda.pdf'
27
30
 
28
- fail "I don't work on Sunday" if 0 == Time.now.wday
31
+ skip_if Rails.env.development? do
32
+ fail "I don't work on Sunday" if 0 == Time.now.wday
33
+ end
29
34
  end
30
35
 
31
36
  If it fails, you'll get a report like this :
@@ -88,7 +93,7 @@ You can also add custom rules, not related to any config files :
88
93
  file_exists '/Users/me/.bash_profile'
89
94
  has_mongoDB 'localhost', 'db_app_1'
90
95
  has_active_record_db :host => 'dbserv', :adapter => 'mysql', :database => 'db'
91
-
96
+ fail "I don't work on Sunday" if (0 == Time.now.wday)
92
97
 
93
98
  ### _keyed_ commands (linked to a value found in a yaml file) :
94
99
 
@@ -124,3 +129,9 @@ Test external services :
124
129
  # can we connect to a SQL db :
125
130
  has_active_record_db_for 'production/db_connection'
126
131
 
132
+ Misc :
133
+ fail 'message'
134
+
135
+ Control commands :
136
+ skip_if <condition> do .. end
137
+ only_if <condition> do .. end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/fail_fast.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fail_fast}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alain Ravet"]
12
- s.date = %q{2010-06-20}
12
+ s.date = %q{2010-06-22}
13
13
  s.description = %q{raises an error if the yaml contents of a config file does not pass a test script.}
14
14
  s.email = %q{alainravet@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -8,6 +8,14 @@ class FailFast
8
8
  def fail(message)
9
9
  FailFast.errors << ErrorDetails.new(nil, :fail, message)
10
10
  end
11
+
12
+ def only_if(condition, &block)
13
+ yield if condition
14
+ end
15
+
16
+ def skip_if(condition, &block)
17
+ yield if !condition
18
+ end
11
19
  end
12
20
  end
13
21
  FailFast.send :include, FailFast::Misc
data/spec/misc_spec.rb CHANGED
@@ -1,7 +1,49 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
- describe "Misc" do
3
+ describe "fail()" do
4
4
  it_should_raise_a_direct_error('message-123', :fail, 'when fail() is called') {
5
5
  fail 'message-123'
6
6
  }
7
7
  end
8
+
9
+ describe "only_if" do
10
+ it_should_not_raise_an_error('only_if false does not run the block') {
11
+ only_if false do
12
+ fail 'never executed'
13
+ end
14
+ }
15
+
16
+ it_should_raise_a_direct_error('message 456', :fail, 'only_if true runs the block') {
17
+ only_if true do
18
+ fail 'message 456'
19
+ end
20
+ }
21
+ end
22
+
23
+ describe "skip_if" do
24
+ it_should_not_raise_an_error('skip_if(true) does not run the block') {
25
+ skip_if true do
26
+ fail 'never executed'
27
+ end
28
+ }
29
+
30
+ it_should_raise_a_direct_error('message 456', :fail, 'skip_if(false) runs the block') {
31
+ skip_if false do
32
+ fail 'message 456'
33
+ end
34
+ }
35
+ end
36
+
37
+ describe "skip_if" do
38
+ it_should_not_raise_an_error('skip_if(true) does not run the block') {
39
+ skip_if true do
40
+ fail 'never executed'
41
+ end
42
+ }
43
+
44
+ it_should_raise_a_direct_error('message 456', :fail, 'skip_if(false) runs the block') {
45
+ skip_if false do
46
+ fail 'message 456'
47
+ end
48
+ }
49
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fail_fast
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alain Ravet
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-20 00:00:00 +02:00
18
+ date: 2010-06-22 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency