bang 0.1.0 → 0.2.0
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/.index +57 -0
- data/.yardopts +7 -0
- data/HISTORY.md +14 -2
- data/LICENSE.txt +22 -0
- data/README.md +44 -22
- data/demo/01_bang.md +180 -0
- data/{spec → demo}/applique/brass.rb +0 -0
- data/lib/bang.rb +26 -9
- data/lib/bang.yml +57 -0
- metadata +35 -15
- data/COPYING.md +0 -36
data/.index
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
type: ruby
|
3
|
+
revision: 2013
|
4
|
+
sources:
|
5
|
+
- var
|
6
|
+
- VERSION
|
7
|
+
authors:
|
8
|
+
- name: Trans
|
9
|
+
email: transfire@gmail.com
|
10
|
+
organizations:
|
11
|
+
- name: Rubyworks
|
12
|
+
requirements:
|
13
|
+
- name: brass
|
14
|
+
- groups:
|
15
|
+
- build
|
16
|
+
development: true
|
17
|
+
name: detroit
|
18
|
+
- groups:
|
19
|
+
- test
|
20
|
+
development: true
|
21
|
+
name: qed
|
22
|
+
conflicts: []
|
23
|
+
alternatives: []
|
24
|
+
resources:
|
25
|
+
- type: home
|
26
|
+
uri: http://rubyworks.github.com/bang
|
27
|
+
label: Homepage
|
28
|
+
- type: code
|
29
|
+
uri: http://github.com/rubyworks/bang
|
30
|
+
label: Source Code
|
31
|
+
- type: bugs
|
32
|
+
uri: http://github.com/rubyworks/bang/issues
|
33
|
+
label: Issue Tracker
|
34
|
+
- type: mail
|
35
|
+
uri: http://groups.google.com/groups/rubyworks-mailinglist
|
36
|
+
label: Mailing List
|
37
|
+
repositories:
|
38
|
+
- name: upstream
|
39
|
+
scm: git
|
40
|
+
uri: git@github.com:rubyworks/bang.git
|
41
|
+
categories: []
|
42
|
+
paths:
|
43
|
+
load:
|
44
|
+
- lib
|
45
|
+
copyrights:
|
46
|
+
- holder: Rubyworks
|
47
|
+
year: '2012'
|
48
|
+
license: BSD-2-Clause
|
49
|
+
created: '2012-01-26'
|
50
|
+
summary: Bang methods for assertions!
|
51
|
+
title: Bang! Bang!
|
52
|
+
name: bang
|
53
|
+
description: ! 'Bang! Bang! provides a dynamic assertions framework utlizing bang
|
54
|
+
|
55
|
+
methods and built to BRASS standards.'
|
56
|
+
version: 0.2.0
|
57
|
+
date: '2012-12-21'
|
data/.yardopts
ADDED
data/HISTORY.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
|
-
# HISTORY
|
1
|
+
# RELEASE HISTORY
|
2
2
|
|
3
|
-
## 0.
|
3
|
+
## 0.2.0 / 2012-12-21
|
4
|
+
|
5
|
+
This release modifies Bang! Bang! to rely on BRASS #assert and #refute
|
6
|
+
methods directly. This simplifies the code a bit and takes care of
|
7
|
+
tracking assertion counts automatically.
|
8
|
+
|
9
|
+
Changes:
|
10
|
+
|
11
|
+
* Use Brass #assert and #refute methods.
|
12
|
+
* Access project metadata dynamically via const_missing.
|
13
|
+
|
14
|
+
|
15
|
+
## 0.1.0 / 2012-02-09
|
4
16
|
|
5
17
|
This is the initial release of Bang.
|
6
18
|
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
BSD-2-Clause License
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions are met:
|
5
|
+
|
6
|
+
1. Redistributions of source code must retain the above copyright notice,
|
7
|
+
this list of conditions and the following disclaimer.
|
8
|
+
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright
|
10
|
+
notice, this list of conditions and the following disclaimer in the
|
11
|
+
documentation and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
14
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
16
|
+
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
17
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
18
|
+
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
19
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
20
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
22
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
CHANGED
@@ -2,34 +2,33 @@
|
|
2
2
|
|
3
3
|
[Website](http://rubyworks.github.com/bang) /
|
4
4
|
[Report Issue](http://github.com/rubyworks/bang/issues) /
|
5
|
-
[
|
6
|
-
[
|
7
|
-
IRC #rubyworks
|
5
|
+
[Source Code](http://github.com/rubyworks/bang)
|
6
|
+
( [](http://travis-ci.org/rubyworks/bang) )
|
8
7
|
|
9
|
-
|
8
|
+
<br/>
|
10
9
|
|
10
|
+
Bang! Bang! is a [BRASS](http://rubyworks.github.com/brass) compliant assertions
|
11
|
+
framework with a very clever design that translates any bang call, e.g. `#foo!`
|
12
|
+
into an assertion based on the corresponding query call if it exists, e.g. `#foo?`.
|
13
|
+
In practice the framework is similar to MiniTest's spec methods,
|
14
|
+
e.g. `#must_equal`, but the dynamic nature of Bang! Bang! makes it much more
|
15
|
+
flexible, as it is not limited to a finite set of assertion methods.
|
11
16
|
|
12
|
-
|
17
|
+
It's also pretty interesting idea that bang methods would be assertion methods.
|
18
|
+
In general practice bang methods are usually used for methods that change the
|
19
|
+
state of an object *in-place*. But this isn't particularly necessary and
|
20
|
+
is just as well handled by non-bang methods, e.g. `#update` vs `#merge!`.
|
13
21
|
|
14
|
-
Bang! Bang! is an assertions framework with a very clever design that translates
|
15
|
-
any bang call, e.g. `#foo!` into an assertion based on the corresponding query
|
16
|
-
call, `#foo?` (if it exists). In practice the framework is similar to MiniTest's
|
17
|
-
spec expectation methods, e.g. `#must_equal`, but the dynamic nature of Bang!
|
18
|
-
Bang! makes it much more flexible, as it is not limited to a finite set of
|
19
|
-
assertion methods.
|
20
22
|
|
21
|
-
|
22
|
-
In usual Ruby code, bang methods ususually aren't particularly necessary and
|
23
|
-
could just as well be handled by non-bang methods, e.g. `#update` vs `#merge!`.
|
24
|
-
|
25
|
-
|
26
|
-
## Instruction
|
23
|
+
## Instructions
|
27
24
|
|
28
25
|
Usage is pretty straight forward.
|
29
26
|
|
27
|
+
```ruby
|
30
28
|
require 'bang'
|
31
29
|
|
32
30
|
"This string".equals!("That string") #=> raises Bang::Assertion
|
31
|
+
```
|
33
32
|
|
34
33
|
To use Bang! Bang! most effectively with common test frameworks, you may need
|
35
34
|
to load an adapter to ensure the framework recognizes the assertions as
|
@@ -37,27 +36,50 @@ such rather than as ordinary errors.
|
|
37
36
|
|
38
37
|
For MiniTest use:
|
39
38
|
|
39
|
+
```ruby
|
40
40
|
require 'bang/minitest'`
|
41
|
+
```
|
41
42
|
|
42
43
|
For TestUnit use:
|
43
44
|
|
45
|
+
```ruby
|
44
46
|
require 'bang/testunit'
|
47
|
+
```
|
45
48
|
|
46
49
|
An RSpec adapter is in the works.
|
47
50
|
|
48
|
-
Cucumber does not require an adapter as it does not
|
51
|
+
Cucumber does not require an adapter as it does not differentiate errors
|
49
52
|
from assertions.
|
50
53
|
|
51
54
|
Note, these adapters simply require the `brass/adapters/minitest` and
|
52
|
-
`brass/adapters/testunit`
|
55
|
+
`brass/adapters/testunit` respectively along with `bang`. So that's another
|
53
56
|
way to do it too.
|
54
57
|
|
55
58
|
|
59
|
+
## On Robustness
|
60
|
+
|
61
|
+
Bang! Bang! works via a set of core extensions. There may be some concern
|
62
|
+
about this approach for a test framework. I can assure you that the fear
|
63
|
+
of the inaptly named "monkey patch" is very much overwrought.
|
64
|
+
|
65
|
+
Even though Bang! Bang! adds a `#method_missing` call to the Object class, it is
|
66
|
+
almost always okay to use because it does not get called if an object already has
|
67
|
+
a bang method defined for it's own use. And when it does get called it only applies
|
68
|
+
if a corresponding query (e.g. `foo?`) method exists.
|
69
|
+
|
70
|
+
The other core extensions it adds are simply convenience methods that make testing
|
71
|
+
easier. Because these are only additions and not overrides, it is perfectly safe to
|
72
|
+
use in all but the most esoteric cases (such a heavy meta-programming). In fact, if
|
73
|
+
a program doesn't work because of these core extensions, that's usually a good
|
74
|
+
indication that something isn't being done right in the program itself.
|
75
|
+
|
76
|
+
|
56
77
|
## Copyrights
|
57
78
|
|
58
|
-
Bang Bang is
|
79
|
+
Bang Bang is copyrighted open source software.
|
59
80
|
|
60
|
-
|
81
|
+
Copyright (c) 2012 Rubyworks
|
61
82
|
|
62
|
-
|
83
|
+
You can redistribute it in accordance to the [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause) license.
|
63
84
|
|
85
|
+
See the included LICENSE.txt file for details.
|
data/demo/01_bang.md
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
# Bangers
|
2
|
+
|
3
|
+
require 'bang'
|
4
|
+
|
5
|
+
## true!
|
6
|
+
|
7
|
+
true.true!
|
8
|
+
|
9
|
+
expect Bang::Assertion do
|
10
|
+
false.true!
|
11
|
+
end
|
12
|
+
|
13
|
+
false.not_true!
|
14
|
+
|
15
|
+
## false!
|
16
|
+
|
17
|
+
false.false!
|
18
|
+
|
19
|
+
expect Bang::Assertion do
|
20
|
+
true.false!
|
21
|
+
end
|
22
|
+
|
23
|
+
true.not_false!
|
24
|
+
|
25
|
+
## nil!
|
26
|
+
|
27
|
+
nil.nil!
|
28
|
+
|
29
|
+
expect Bang::Assertion do
|
30
|
+
true.nil!
|
31
|
+
end
|
32
|
+
|
33
|
+
true.not_nil!
|
34
|
+
|
35
|
+
## equal!
|
36
|
+
|
37
|
+
1.equal!(1)
|
38
|
+
|
39
|
+
expect Bang::Assertion do
|
40
|
+
1.equal!(2)
|
41
|
+
end
|
42
|
+
|
43
|
+
1.not_equal!(2)
|
44
|
+
|
45
|
+
## eql!
|
46
|
+
|
47
|
+
1.eql!(1)
|
48
|
+
|
49
|
+
expect Bang::Assertion do
|
50
|
+
1.eql!(1.0)
|
51
|
+
end
|
52
|
+
|
53
|
+
1.not_eql!(1.0)
|
54
|
+
|
55
|
+
## identical!
|
56
|
+
|
57
|
+
Ruby's built-in query method for this is `#equal?`, but obviously that conflicts
|
58
|
+
with our use of `#equal!` to test quality using `###`. So instead we use `#identical!`
|
59
|
+
which makes more sense really.
|
60
|
+
|
61
|
+
:a.identical!(:a)
|
62
|
+
|
63
|
+
expect Bang::Assertion do
|
64
|
+
"a".identical!("a")
|
65
|
+
end
|
66
|
+
|
67
|
+
:a.not_identical!('a')
|
68
|
+
|
69
|
+
## instance_of!
|
70
|
+
|
71
|
+
1.instance_of!(Fixnum)
|
72
|
+
|
73
|
+
expect Bang::Assertion do
|
74
|
+
1.instance_of!(String)
|
75
|
+
end
|
76
|
+
|
77
|
+
1.not_instance_of!(String)
|
78
|
+
|
79
|
+
## kind_of!
|
80
|
+
|
81
|
+
1.kind_of!(Integer)
|
82
|
+
|
83
|
+
expect Bang::Assertion do
|
84
|
+
1.kind_of!(String)
|
85
|
+
end
|
86
|
+
|
87
|
+
1.not_kind_of!(String)
|
88
|
+
|
89
|
+
## within!
|
90
|
+
|
91
|
+
1.within!(2, 1.5)
|
92
|
+
|
93
|
+
expect Bang::Assertion do
|
94
|
+
1.within!(2, 0.5)
|
95
|
+
end
|
96
|
+
|
97
|
+
1.not_within!(2, 0.5)
|
98
|
+
|
99
|
+
## close!
|
100
|
+
|
101
|
+
1.close!(2, 1.5)
|
102
|
+
|
103
|
+
expect Bang::Assertion do
|
104
|
+
1.close!(1.2, 0.5)
|
105
|
+
end
|
106
|
+
|
107
|
+
1.not_close!(5, 0.5)
|
108
|
+
|
109
|
+
## match!
|
110
|
+
|
111
|
+
"abc".match!(/a/)
|
112
|
+
|
113
|
+
expect Bang::Assertion do
|
114
|
+
"abc".match!(/x/)
|
115
|
+
end
|
116
|
+
|
117
|
+
"abc".not_match!(/g/)
|
118
|
+
|
119
|
+
## respond_to!
|
120
|
+
|
121
|
+
"string".respond_to!(:upcase)
|
122
|
+
|
123
|
+
expect Bang::Assertion do
|
124
|
+
"string".respond_to!(:not_a_method)
|
125
|
+
end
|
126
|
+
|
127
|
+
"string".not_respond_to!(:not_a_method)
|
128
|
+
|
129
|
+
## satisfy!
|
130
|
+
|
131
|
+
5.satisfy!{ |x| x > 3 }
|
132
|
+
|
133
|
+
expect Bang::Assertion do
|
134
|
+
5.satisfy!{ |x| x < 3 }
|
135
|
+
end
|
136
|
+
|
137
|
+
5.not_satisfy!{ |x| x < 3 }
|
138
|
+
|
139
|
+
## raises!
|
140
|
+
|
141
|
+
::ArgumentError.raised!{ raise ::ArgumentError }
|
142
|
+
|
143
|
+
An extension to Proc class can also be used.
|
144
|
+
|
145
|
+
procedure = lambda{ raise ::ArgumentError }
|
146
|
+
|
147
|
+
procedure.raises!(::ArgumentError)
|
148
|
+
|
149
|
+
expect Bang::Assertion do
|
150
|
+
procedure.raises!(::TypeError)
|
151
|
+
end
|
152
|
+
|
153
|
+
## rescues!
|
154
|
+
|
155
|
+
::TypeError.rescued!{ raise ::TypeError }
|
156
|
+
|
157
|
+
An extension to Proc class can also be used.
|
158
|
+
|
159
|
+
procedure = lambda{ raise ::TypeError }
|
160
|
+
|
161
|
+
procedure.rescues!(::StandardError)
|
162
|
+
|
163
|
+
expect Bang::Assertion do
|
164
|
+
procedure.rescues!(::IOError)
|
165
|
+
end
|
166
|
+
|
167
|
+
## throws!
|
168
|
+
|
169
|
+
:foo.thrown!{ throw :foo }
|
170
|
+
|
171
|
+
An extension to Proc class can also be used.
|
172
|
+
|
173
|
+
procedure = lambda{ throw :foo }
|
174
|
+
|
175
|
+
procedure.throws!(:foo)
|
176
|
+
|
177
|
+
expect Bang::Assertion do
|
178
|
+
procedure.throws!(:bar)
|
179
|
+
end
|
180
|
+
|
File without changes
|
data/lib/bang.rb
CHANGED
@@ -1,18 +1,33 @@
|
|
1
1
|
module Bang
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
# Bang has brass balls.
|
4
|
+
require 'brass'
|
5
|
+
|
6
|
+
#
|
7
|
+
# If constant is missing check for value in project metadata.
|
8
|
+
# e.g. `Bang::VERSION`.
|
9
|
+
#
|
10
|
+
def self.const_missing(const_name)
|
11
|
+
index[const_name.to_s.downcase] || super(const_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
#
|
15
|
+
# Access project metadata.
|
16
|
+
#
|
17
|
+
def self.index
|
18
|
+
@index ||= (
|
19
|
+
require 'yaml'
|
20
|
+
YAML.load_file(File.dirname(__FILE__) + '/bang.yml')
|
21
|
+
)
|
7
22
|
end
|
8
23
|
|
9
|
-
# Bang's assertion class. Follows standard set by
|
24
|
+
# Bang's assertion class. Follows standard set by BRASS project,
|
10
25
|
# defining `#assertion?` method which return `true`.
|
11
26
|
#
|
12
27
|
class Assertion < ::Exception
|
13
28
|
|
14
29
|
#
|
15
|
-
#
|
30
|
+
# Piece together an Assetion error give the message used to
|
16
31
|
# cause the assertion failure.
|
17
32
|
#
|
18
33
|
# @return [Assertion] Assertion instance.
|
@@ -72,8 +87,10 @@ module Bang
|
|
72
87
|
|
73
88
|
result = meth.call(*a, &b)
|
74
89
|
|
75
|
-
if
|
76
|
-
|
90
|
+
if neg
|
91
|
+
refute(result, Bang::Assertion.piece(s, a, b, caller))
|
92
|
+
else
|
93
|
+
assert(result, Bang::Assertion.piece(s, a, b, caller))
|
77
94
|
end
|
78
95
|
end
|
79
96
|
|
@@ -100,7 +117,7 @@ module Bang
|
|
100
117
|
#
|
101
118
|
# @return [true,false] Whether `self` is equal to `other`.
|
102
119
|
#
|
103
|
-
def equal_to?
|
120
|
+
def equal_to?(other)
|
104
121
|
other == self
|
105
122
|
end
|
106
123
|
|
data/lib/bang.yml
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
type: ruby
|
3
|
+
revision: 2013
|
4
|
+
sources:
|
5
|
+
- var
|
6
|
+
- VERSION
|
7
|
+
authors:
|
8
|
+
- name: Trans
|
9
|
+
email: transfire@gmail.com
|
10
|
+
organizations:
|
11
|
+
- name: Rubyworks
|
12
|
+
requirements:
|
13
|
+
- name: brass
|
14
|
+
- groups:
|
15
|
+
- build
|
16
|
+
development: true
|
17
|
+
name: detroit
|
18
|
+
- groups:
|
19
|
+
- test
|
20
|
+
development: true
|
21
|
+
name: qed
|
22
|
+
conflicts: []
|
23
|
+
alternatives: []
|
24
|
+
resources:
|
25
|
+
- type: home
|
26
|
+
uri: http://rubyworks.github.com/bang
|
27
|
+
label: Homepage
|
28
|
+
- type: code
|
29
|
+
uri: http://github.com/rubyworks/bang
|
30
|
+
label: Source Code
|
31
|
+
- type: bugs
|
32
|
+
uri: http://github.com/rubyworks/bang/issues
|
33
|
+
label: Issue Tracker
|
34
|
+
- type: mail
|
35
|
+
uri: http://groups.google.com/groups/rubyworks-mailinglist
|
36
|
+
label: Mailing List
|
37
|
+
repositories:
|
38
|
+
- name: upstream
|
39
|
+
scm: git
|
40
|
+
uri: git@github.com:rubyworks/bang.git
|
41
|
+
categories: []
|
42
|
+
paths:
|
43
|
+
load:
|
44
|
+
- lib
|
45
|
+
copyrights:
|
46
|
+
- holder: Rubyworks
|
47
|
+
year: '2012'
|
48
|
+
license: BSD-2-Clause
|
49
|
+
created: '2012-01-26'
|
50
|
+
summary: Bang methods for assertions!
|
51
|
+
title: Bang! Bang!
|
52
|
+
name: bang
|
53
|
+
description: ! 'Bang! Bang! provides a dynamic assertions framework utlizing bang
|
54
|
+
|
55
|
+
methods and built to BRASS standards.'
|
56
|
+
version: 0.2.0
|
57
|
+
date: '2012-12-21'
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
-
|
8
|
+
- Trans
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: brass
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: detroit
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: qed
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,25 +53,35 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
|
48
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: ! 'Bang! Bang! provides a dynamic assertions framework utlizing bang
|
63
|
+
|
64
|
+
methods and built to BRASS standards.'
|
49
65
|
email:
|
50
66
|
- transfire@gmail.com
|
51
67
|
executables: []
|
52
68
|
extensions: []
|
53
69
|
extra_rdoc_files:
|
54
|
-
-
|
70
|
+
- LICENSE.txt
|
55
71
|
- HISTORY.md
|
56
72
|
- README.md
|
57
73
|
files:
|
74
|
+
- .index
|
75
|
+
- .yardopts
|
76
|
+
- demo/01_bang.md
|
77
|
+
- demo/applique/brass.rb
|
58
78
|
- lib/bang/minitest.rb
|
59
79
|
- lib/bang/testunit.rb
|
60
80
|
- lib/bang.rb
|
61
|
-
-
|
62
|
-
- COPYING.md
|
81
|
+
- lib/bang.yml
|
63
82
|
- HISTORY.md
|
64
83
|
- README.md
|
84
|
+
- LICENSE.txt
|
65
85
|
homepage: http://rubyworks.github.com/bang
|
66
86
|
licenses:
|
67
87
|
- BSD-2-Clause
|
@@ -83,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
103
|
version: '0'
|
84
104
|
requirements: []
|
85
105
|
rubyforge_project:
|
86
|
-
rubygems_version: 1.8.
|
106
|
+
rubygems_version: 1.8.23
|
87
107
|
signing_key:
|
88
108
|
specification_version: 3
|
89
109
|
summary: Bang methods for assertions!
|
data/COPYING.md
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# COPYRIGHT
|
2
|
-
|
3
|
-
## NOTICES
|
4
|
-
|
5
|
-
### Assay
|
6
|
-
|
7
|
-
| Project | Bang |
|
8
|
-
|-----------|-----------------------------------|
|
9
|
-
| Copyright | (c) 2012 Rubyworks |
|
10
|
-
| License | (r) BSD-2-Clause |
|
11
|
-
| Website | http://rubyworks.github.com/bang |
|
12
|
-
|
13
|
-
## LICENSES
|
14
|
-
|
15
|
-
### BSD-2-Clause License
|
16
|
-
|
17
|
-
Redistribution and use in source and binary forms, with or without
|
18
|
-
modification, are permitted provided that the following conditions are met:
|
19
|
-
|
20
|
-
1. Redistributions of source code must retain the above copyright notice,
|
21
|
-
this list of conditions and the following disclaimer.
|
22
|
-
|
23
|
-
2. Redistributions in binary form must reproduce the above copyright
|
24
|
-
notice, this list of conditions and the following disclaimer in the
|
25
|
-
documentation and/or other materials provided with the distribution.
|
26
|
-
|
27
|
-
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
28
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
29
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
30
|
-
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
31
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
32
|
-
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
33
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
34
|
-
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
35
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
36
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|