tworgy-ruby 0.4.1 → 0.4.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/lib/tworgy/dbc.rb +16 -9
- data/spec/lib/tworgy/dbc_spec.rb +40 -0
- metadata +4 -2
data/lib/tworgy/dbc.rb
CHANGED
@@ -1,35 +1,42 @@
|
|
1
1
|
class DBC
|
2
|
+
class PreconditionException < RuntimeError; end
|
3
|
+
class AssertconditionException < RuntimeError; end
|
4
|
+
class PostconditionException < RuntimeError; end
|
5
|
+
class FailException < RuntimeError; end
|
6
|
+
|
2
7
|
def self.require(condition, message = "")
|
3
8
|
unless condition
|
4
|
-
error(
|
9
|
+
error(PreconditionException, message, caller)
|
5
10
|
end
|
6
11
|
end
|
7
12
|
|
8
13
|
def self.require_not_blank(string, message = "")
|
9
|
-
if string.strip.blank?
|
10
|
-
error(
|
14
|
+
if string.nil? || string.strip.blank?
|
15
|
+
error(PreconditionException, message, caller)
|
11
16
|
end
|
12
17
|
end
|
13
18
|
|
14
19
|
def self.assert(condition, message = "")
|
15
20
|
unless condition
|
16
|
-
error(
|
21
|
+
error(AssertconditionException, message, caller)
|
17
22
|
end
|
18
23
|
end
|
19
24
|
|
20
25
|
def self.ensure(condition, message = "")
|
21
26
|
unless condition
|
22
|
-
error(
|
27
|
+
error(PostconditionException, message, caller)
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
26
31
|
def self.fail(message = "")
|
27
|
-
error(
|
32
|
+
error(FailException, message, caller)
|
28
33
|
end
|
29
34
|
|
30
35
|
private
|
31
36
|
|
32
|
-
def self.error(
|
33
|
-
raise
|
37
|
+
def self.error(klass, message, caller)
|
38
|
+
raise klass.new("#{klass.name}-condition failed: #{message}\nTrace was: #{caller.join("\n")}")
|
34
39
|
end
|
35
|
-
|
40
|
+
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
2
|
+
|
3
|
+
describe DBC do
|
4
|
+
|
5
|
+
describe 'should raise DBC exception for' do
|
6
|
+
it 'require with false' do
|
7
|
+
lambda { DBC.require(false) }.should raise_error(DBC::PreconditionException)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'require with nil' do
|
11
|
+
lambda { DBC.require(nil) }.should raise_error(DBC::PreconditionException)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'require_not_blank with nil' do
|
15
|
+
lambda { DBC.require_not_blank(nil) }.should raise_error(DBC::PreconditionException)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'require_not_blank with " "' do
|
19
|
+
lambda { DBC.require_not_blank(" ") }.should raise_error(DBC::PreconditionException)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'assert with false' do
|
23
|
+
lambda { DBC.assert(false) }.should raise_error(DBC::AssertconditionException)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'assert with nil' do
|
27
|
+
lambda { DBC.assert(nil) }.should raise_error(DBC::AssertconditionException)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'ensure with false' do
|
31
|
+
lambda { DBC.ensure(false) }.should raise_error(DBC::PostconditionException)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'ensure with nil' do
|
35
|
+
lambda { DBC.ensure(nil) }.should raise_error(DBC::PostconditionException)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tworgy-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mat Holroyd
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-17 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/tworgy/standard_extensions.rb
|
43
43
|
- lib/tworgy/testing.rb
|
44
44
|
- lib/tworgy/tmail.rb
|
45
|
+
- spec/lib/tworgy/dbc_spec.rb
|
45
46
|
- spec/lib/tworgy/hash_and_array_extensions_spec.rb
|
46
47
|
- spec/lib/tworgy/testing_spec.rb
|
47
48
|
- spec/spec.opts
|
@@ -75,6 +76,7 @@ signing_key:
|
|
75
76
|
specification_version: 3
|
76
77
|
summary: Handy Ruby extensions
|
77
78
|
test_files:
|
79
|
+
- spec/lib/tworgy/dbc_spec.rb
|
78
80
|
- spec/lib/tworgy/hash_and_array_extensions_spec.rb
|
79
81
|
- spec/lib/tworgy/testing_spec.rb
|
80
82
|
- spec/spec_helper.rb
|