fail_fast 0.5.1 → 0.5.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.
- data/.gitignore +2 -0
- data/.rvmrc +1 -0
- data/CHANGELOG.txt +9 -0
- data/Gemfile +3 -0
- data/README.markdown +15 -1
- data/Rakefile +8 -36
- data/fail_fast.gemspec +22 -107
- data/lib/fail_fast/base/base.rb +1 -1
- data/lib/fail_fast/base/messaging.rb +1 -1
- data/lib/fail_fast/base/utils.rb +3 -2
- data/lib/fail_fast/base/z_only_for_tests.rb +2 -2
- data/lib/fail_fast/extensions/directory_exists.rb +41 -0
- data/lib/fail_fast/extensions/file_exists.rb +41 -0
- data/lib/fail_fast/extensions/{check_active_record_db.rb → has_active_record_db.rb} +4 -2
- data/lib/fail_fast/extensions/{check_email.rb → has_email.rb} +7 -5
- data/lib/fail_fast/extensions/{check_mongo_db.rb → has_mongo_db.rb} +13 -9
- data/lib/fail_fast/extensions/{check_url.rb → has_url.rb} +8 -6
- data/lib/fail_fast/extensions/{check_value.rb → has_value.rb} +3 -3
- data/lib/fail_fast/extensions/{check_is_on_path.rb → is_on_path.rb} +10 -6
- data/lib/fail_fast/main.rb +1 -1
- data/lib/fail_fast/support/error_db.rb +1 -1
- data/lib/fail_fast/support/error_details.rb +2 -2
- data/lib/fail_fast/support/z_only_for_tests.rb +1 -1
- data/spec/base/base_commands/fail_spec.rb +7 -0
- data/spec/base/base_commands/failed_spec.rb +19 -0
- data/spec/base/base_commands/only_if_spec.rb +15 -0
- data/spec/base/base_commands/skip_if_spec.rb +29 -0
- data/spec/base/errors_storage_spec.rb +1 -1
- data/spec/base/multiple_blocks_support_spec.rb +3 -3
- data/spec/base/{not_linked_to_a_file_spec.rb → not_linked_to_a_config_file_spec.rb} +3 -3
- data/spec/base/{file_is_empty_spec.rb → when_config_file_is_empty_spec.rb} +3 -3
- data/spec/base/{file_is_missing_spec.rb → when_config_file_is_missing_spec.rb} +2 -2
- data/spec/extensions/{check_file_system_spec.rb → file_or_directory_exists_spec.rb} +18 -2
- data/spec/extensions/{check_active_record_db_spec.rb → has_active_record_db_spec.rb} +11 -6
- data/spec/extensions/{check_email_spec.rb → has_email_spec.rb} +11 -6
- data/spec/extensions/{check_mongo_db_spec.rb → has_mongoDB_spec.rb} +28 -9
- data/spec/extensions/{check_url_spec.rb → has_url_spec.rb} +4 -1
- data/spec/extensions/{check_value_spec.rb → has_value_spec.rb} +15 -11
- data/spec/extensions/{check_is_on_path_spec.rb → is_on_path_spec.rb} +9 -5
- data/spec/spec_helper.rb +39 -4
- metadata +78 -55
- data/VERSION +0 -1
- data/lib/fail_fast/extensions/check_file_system.rb +0 -67
- data/spec/base/base_commands_spec.rb +0 -67
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:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 2
|
10
|
+
version: 0.5.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alain Ravet
|
@@ -15,29 +15,29 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
19
|
-
default_executable:
|
18
|
+
date: 2011-06-16 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
name: rspec
|
23
21
|
prerelease: false
|
24
|
-
|
22
|
+
name: rspec
|
23
|
+
type: :development
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - "="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 31
|
30
30
|
segments:
|
31
31
|
- 1
|
32
|
+
- 3
|
32
33
|
- 2
|
33
|
-
|
34
|
-
|
35
|
-
type: :development
|
36
|
-
version_requirements: *id001
|
34
|
+
version: 1.3.2
|
35
|
+
requirement: *id001
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
|
-
name: activerecord
|
39
37
|
prerelease: false
|
40
|
-
|
38
|
+
name: activerecord
|
39
|
+
type: :development
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
@@ -46,12 +46,12 @@ dependencies:
|
|
46
46
|
segments:
|
47
47
|
- 0
|
48
48
|
version: "0"
|
49
|
-
|
50
|
-
version_requirements: *id002
|
49
|
+
requirement: *id002
|
51
50
|
- !ruby/object:Gem::Dependency
|
52
|
-
name: mongo
|
53
51
|
prerelease: false
|
54
|
-
|
52
|
+
name: mongo
|
53
|
+
type: :development
|
54
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
55
|
none: false
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
@@ -60,10 +60,23 @@ dependencies:
|
|
60
60
|
segments:
|
61
61
|
- 0
|
62
62
|
version: "0"
|
63
|
+
requirement: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
prerelease: false
|
66
|
+
name: fakeweb
|
63
67
|
type: :development
|
64
|
-
version_requirements:
|
65
|
-
|
66
|
-
|
68
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
requirement: *id004
|
78
|
+
description: raises an error if the yaml contents of a config file does pass a test script.
|
79
|
+
email: alain.ravet@gmail.com
|
67
80
|
executables: []
|
68
81
|
|
69
82
|
extensions: []
|
@@ -74,11 +87,12 @@ extra_rdoc_files:
|
|
74
87
|
files:
|
75
88
|
- .document
|
76
89
|
- .gitignore
|
90
|
+
- .rvmrc
|
77
91
|
- CHANGELOG.txt
|
92
|
+
- Gemfile
|
78
93
|
- LICENSE
|
79
94
|
- README.markdown
|
80
95
|
- Rakefile
|
81
|
-
- VERSION
|
82
96
|
- fail_fast.gemspec
|
83
97
|
- lib/fail_fast.rb
|
84
98
|
- lib/fail_fast/base/base.rb
|
@@ -86,41 +100,44 @@ files:
|
|
86
100
|
- lib/fail_fast/base/utils.rb
|
87
101
|
- lib/fail_fast/base/z_only_for_tests.rb
|
88
102
|
- lib/fail_fast/extensions/base_commands.rb
|
89
|
-
- lib/fail_fast/extensions/
|
90
|
-
- lib/fail_fast/extensions/
|
91
|
-
- lib/fail_fast/extensions/
|
92
|
-
- lib/fail_fast/extensions/
|
93
|
-
- lib/fail_fast/extensions/
|
94
|
-
- lib/fail_fast/extensions/
|
95
|
-
- lib/fail_fast/extensions/
|
103
|
+
- lib/fail_fast/extensions/directory_exists.rb
|
104
|
+
- lib/fail_fast/extensions/file_exists.rb
|
105
|
+
- lib/fail_fast/extensions/has_active_record_db.rb
|
106
|
+
- lib/fail_fast/extensions/has_email.rb
|
107
|
+
- lib/fail_fast/extensions/has_mongo_db.rb
|
108
|
+
- lib/fail_fast/extensions/has_url.rb
|
109
|
+
- lib/fail_fast/extensions/has_value.rb
|
110
|
+
- lib/fail_fast/extensions/is_on_path.rb
|
96
111
|
- lib/fail_fast/main.rb
|
97
112
|
- lib/fail_fast/report.txt.erb
|
98
113
|
- lib/fail_fast/support/error_db.rb
|
99
114
|
- lib/fail_fast/support/error_details.rb
|
100
115
|
- lib/fail_fast/support/z_only_for_tests.rb
|
101
116
|
- show_all_errors.rb
|
102
|
-
- spec/base/
|
117
|
+
- spec/base/base_commands/fail_spec.rb
|
118
|
+
- spec/base/base_commands/failed_spec.rb
|
119
|
+
- spec/base/base_commands/only_if_spec.rb
|
120
|
+
- spec/base/base_commands/skip_if_spec.rb
|
103
121
|
- spec/base/error_details_spec.rb
|
104
122
|
- spec/base/errors_storage_spec.rb
|
105
|
-
- spec/base/file_is_empty_spec.rb
|
106
|
-
- spec/base/file_is_missing_spec.rb
|
107
123
|
- spec/base/multiple_blocks_support_spec.rb
|
108
|
-
- spec/base/
|
124
|
+
- spec/base/not_linked_to_a_config_file_spec.rb
|
109
125
|
- spec/base/report_printing_spec.rb
|
110
|
-
- spec/
|
111
|
-
- spec/
|
112
|
-
- spec/extensions/
|
113
|
-
- spec/extensions/
|
114
|
-
- spec/extensions/
|
115
|
-
- spec/extensions/
|
116
|
-
- spec/extensions/
|
126
|
+
- spec/base/when_config_file_is_empty_spec.rb
|
127
|
+
- spec/base/when_config_file_is_missing_spec.rb
|
128
|
+
- spec/extensions/file_or_directory_exists_spec.rb
|
129
|
+
- spec/extensions/has_active_record_db_spec.rb
|
130
|
+
- spec/extensions/has_email_spec.rb
|
131
|
+
- spec/extensions/has_mongoDB_spec.rb
|
132
|
+
- spec/extensions/has_url_spec.rb
|
133
|
+
- spec/extensions/has_value_spec.rb
|
134
|
+
- spec/extensions/is_on_path_spec.rb
|
117
135
|
- spec/extensions/key_prefix_spec.rb
|
118
136
|
- spec/fixtures/empty.yml
|
119
137
|
- spec/fixtures/simple.yml
|
120
138
|
- spec/how_to_use_spec.rb
|
121
139
|
- spec/spec.opts
|
122
140
|
- spec/spec_helper.rb
|
123
|
-
has_rdoc: true
|
124
141
|
homepage: http://github.com/alainravet/fail_fast
|
125
142
|
licenses: []
|
126
143
|
|
@@ -150,26 +167,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
167
|
requirements: []
|
151
168
|
|
152
169
|
rubyforge_project:
|
153
|
-
rubygems_version: 1.
|
170
|
+
rubygems_version: 1.7.2
|
154
171
|
signing_key:
|
155
172
|
specification_version: 3
|
156
173
|
summary: raises an error if the yaml contents of a config file does pass a test script.
|
157
174
|
test_files:
|
158
|
-
- spec/base/
|
175
|
+
- spec/base/base_commands/fail_spec.rb
|
176
|
+
- spec/base/base_commands/failed_spec.rb
|
177
|
+
- spec/base/base_commands/only_if_spec.rb
|
178
|
+
- spec/base/base_commands/skip_if_spec.rb
|
159
179
|
- spec/base/error_details_spec.rb
|
160
180
|
- spec/base/errors_storage_spec.rb
|
161
|
-
- spec/base/file_is_empty_spec.rb
|
162
|
-
- spec/base/file_is_missing_spec.rb
|
163
181
|
- spec/base/multiple_blocks_support_spec.rb
|
164
|
-
- spec/base/
|
182
|
+
- spec/base/not_linked_to_a_config_file_spec.rb
|
165
183
|
- spec/base/report_printing_spec.rb
|
166
|
-
- spec/
|
167
|
-
- spec/
|
168
|
-
- spec/extensions/
|
169
|
-
- spec/extensions/
|
170
|
-
- spec/extensions/
|
171
|
-
- spec/extensions/
|
172
|
-
- spec/extensions/
|
184
|
+
- spec/base/when_config_file_is_empty_spec.rb
|
185
|
+
- spec/base/when_config_file_is_missing_spec.rb
|
186
|
+
- spec/extensions/file_or_directory_exists_spec.rb
|
187
|
+
- spec/extensions/has_active_record_db_spec.rb
|
188
|
+
- spec/extensions/has_email_spec.rb
|
189
|
+
- spec/extensions/has_mongoDB_spec.rb
|
190
|
+
- spec/extensions/has_url_spec.rb
|
191
|
+
- spec/extensions/has_value_spec.rb
|
192
|
+
- spec/extensions/is_on_path_spec.rb
|
173
193
|
- spec/extensions/key_prefix_spec.rb
|
194
|
+
- spec/fixtures/empty.yml
|
195
|
+
- spec/fixtures/simple.yml
|
174
196
|
- spec/how_to_use_spec.rb
|
197
|
+
- spec/spec.opts
|
175
198
|
- spec/spec_helper.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.5.1
|
@@ -1,67 +0,0 @@
|
|
1
|
-
class FailFast
|
2
|
-
module CheckFileSystem
|
3
|
-
|
4
|
-
# Ensure the value is an existing directory
|
5
|
-
#
|
6
|
-
# Usage
|
7
|
-
# directory_exists '/tmp'
|
8
|
-
# directory_exists '/tmp', :message => 'custom message'
|
9
|
-
#
|
10
|
-
def directory_exists(path, options={})
|
11
|
-
unless File.exists?(path) && File.directory?(path)
|
12
|
-
add_error ErrorDetails.new(nil, :directory_not_found, path, options[:message])
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Ensure the value is an existing file
|
17
|
-
#
|
18
|
-
# Usage
|
19
|
-
# file_exists '~/.bash_profile'
|
20
|
-
# file_exists '~/.bash_profile', :message => 'custom message'
|
21
|
-
#
|
22
|
-
def file_exists(path, options={})
|
23
|
-
unless File.exists?(path) && File.file?(path)
|
24
|
-
add_error ErrorDetails.new(nil, :file_not_found, path, options[:message])
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Ensure the key value is an existing directory
|
29
|
-
#
|
30
|
-
# Usage
|
31
|
-
# directory_exists_for 'foo/config'
|
32
|
-
# directory_exists_for 'foo/config', :message => 'custom message'
|
33
|
-
#
|
34
|
-
def directory_exists_for(raw_key, *params)
|
35
|
-
p = key_value_regexp_options(raw_key, params)
|
36
|
-
key, options = p.key, p.options
|
37
|
-
|
38
|
-
return unless has_value_for raw_key, :message => options[:message]
|
39
|
-
|
40
|
-
path = value_for_deep_key(key)
|
41
|
-
unless File.exists?(path) && File.directory?(path)
|
42
|
-
add_error ErrorDetails.new(key, :directory_not_found, p.value, options[:message])
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Ensure the key value is an existing file exists
|
47
|
-
#
|
48
|
-
# Usage
|
49
|
-
# file_exists_for 'foo/config/app.yml'
|
50
|
-
# file_exists_for 'foo/config/app.yml', :message => 'custom message'
|
51
|
-
#
|
52
|
-
def file_exists_for(raw_key, *params)
|
53
|
-
p = key_value_regexp_options(raw_key, params)
|
54
|
-
key, options = p.key, p.options
|
55
|
-
|
56
|
-
return unless has_value_for raw_key, :message => options[:message]
|
57
|
-
|
58
|
-
path = value_for_deep_key(key)
|
59
|
-
unless File.exists?(path) && File.file?(path)
|
60
|
-
add_error ErrorDetails.new(key, :file_not_found, p.value, options[:message])
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
FailFast.send :include, FailFast::CheckFileSystem
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe "fail()" do
|
4
|
-
it_should_raise_a_direct_error('message-123', :fail, 'when fail() is called') {
|
5
|
-
fail 'message-123'
|
6
|
-
}
|
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
|
50
|
-
|
51
|
-
describe 'failed?' do
|
52
|
-
example "is false when there are no errors" do
|
53
|
-
FailFast(SIMPLE_FILE_PATH ).check_now.but_fail_later {}
|
54
|
-
FailFast.failed?.should be_false
|
55
|
-
end
|
56
|
-
|
57
|
-
example "is true when there is 1 block and 1 error" do
|
58
|
-
FailFast(UNKNOWN_FILE_PATH).check_now.but_fail_later {} # <-- 1 error here
|
59
|
-
FailFast.failed?.should be_true
|
60
|
-
end
|
61
|
-
|
62
|
-
example "is true when the error block is followed by and error-free empty file block (BUG FIX)" do
|
63
|
-
FailFast(UNKNOWN_FILE_PATH).check_now.but_fail_later {} # <-- 1 error here
|
64
|
-
FailFast(EMPTY_FILE_PATH ).check_now.but_fail_later {} #no errors in the last block
|
65
|
-
FailFast.failed?.should be_true
|
66
|
-
end
|
67
|
-
end
|