solid_assert 1.0.0 → 1.1.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.
- checksums.yaml +5 -5
- data/README.md +11 -8
- data/lib/solid_assert/version.rb +1 -1
- data/solid_assert.gemspec +3 -3
- metadata +22 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4627026d63e35103c5c22f19de8c4ef776ebc1d172d4bc897813c315aec1c731
|
4
|
+
data.tar.gz: e98bfadd3b7a5e26ba087ebcb7a88167bbea26f5c279684dcc55bf292ca55813
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03b063229bc1eab36ca5787178262b5ff579d04494e78ae66b3cec5b5afcca318024f7161a2dcf1b616d8b87b006085f9fff6c8def64eb387cab010f029f4ba5
|
7
|
+
data.tar.gz: f041e3d8d4ac25f60ac82a65c2395816f9d96edd6fc8124bc7bb866c3169b9f541a8622f513f67b314106d51ac2de982a4607bf6442d4f2108dc91c93ab06909
|
data/README.md
CHANGED
@@ -10,10 +10,6 @@ Assertions are meant to test conditions about the integrity of your code. You sh
|
|
10
10
|
- This line of code should never be executed.
|
11
11
|
- At this point, this list should contain one entry for each key in this hash.
|
12
12
|
|
13
|
-
Notice that assertions shouldn't be used for handling error situations. Use Ruby built-in exception handling for that.
|
14
|
-
|
15
|
-
Assertions are typically used in development mode. You might want to disable them in production for performance reasons.
|
16
|
-
|
17
13
|
# Installation
|
18
14
|
|
19
15
|
Add to your `Gemfile`:
|
@@ -31,13 +27,16 @@ SolidAssert.enable_assertions
|
|
31
27
|
SolidAssert.disable_assertions
|
32
28
|
```
|
33
29
|
|
34
|
-
Assertions are disabled by default.
|
30
|
+
Assertions are disabled by default and are typically used in development mode only. You might want to disable them in production for performance reasons.
|
35
31
|
|
36
32
|
Use `assert` for testing conditions. You can optionally provide an error message.
|
37
33
|
|
38
34
|
```ruby
|
39
|
-
assert some_string != "
|
40
|
-
assert
|
35
|
+
assert some_string != "unexpected value"
|
36
|
+
assert user.authenticated?
|
37
|
+
|
38
|
+
assert apples_count > 5, "Not enough apples!"
|
39
|
+
assert !clients.empty?, "The list must NOT be empty!"
|
41
40
|
```
|
42
41
|
|
43
42
|
Use `invariant` for testing blocks of code. This comes handy
|
@@ -60,6 +59,10 @@ invariant "Lists must have equal sizes!" do
|
|
60
59
|
end
|
61
60
|
```
|
62
61
|
|
62
|
+
### Assertion Error
|
63
|
+
|
64
|
+
Failed assertion will raise `SolidAssert::AssertionFailedError` error. You shouldn't catch it in a `rescue` block! If it raised then something is wrong with either your code or with you assumption. *Assertions shouldn't be used for handling error situations!* Use Ruby built-in exception handling for that.
|
65
|
+
|
63
66
|
## Rails
|
64
67
|
|
65
68
|
Create a file named `solid_assert.rb` in the `config/initializers` dir with the following content:
|
@@ -72,5 +75,5 @@ This way assertions will be disabled in production and enabled in the rest of en
|
|
72
75
|
|
73
76
|
## References
|
74
77
|
|
75
|
-
- [Programming with assertions](
|
78
|
+
- [Programming with assertions](https://docs.oracle.com/javase/8/docs/technotes/guides/language/assert.html). A great article on assertions. It is about the Java language, but the concepts apply to any programming language.
|
76
79
|
- There are good references to assertive programming in some classic books like [The Pragmatic Programmer From Journeyman to Master](http://www.amazon.com/exec/obidos/ASIN/020161622X/ref=nosim/jorgmanrpersp-20), [Code Complete](http://www.amazon.com/exec/obidos/ASIN/0735619670/ref=nosim/jorgmanrpersp-20) and [Writing solid code](http://www.amazon.com/exec/obidos/ASIN/1556155514/ref=nosim/jorgmanrpersp-20)
|
data/lib/solid_assert/version.rb
CHANGED
data/solid_assert.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
16
|
spec.require_paths = ["lib"]
|
17
17
|
|
18
|
-
spec.required_ruby_version = "
|
18
|
+
spec.required_ruby_version = ">= 2.3"
|
19
19
|
|
20
|
-
spec.add_development_dependency "bundler", "~>
|
21
|
-
spec.add_development_dependency "rake", "~>
|
20
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
21
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
22
22
|
spec.add_development_dependency "rspec", "~> 3.4"
|
23
23
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solid_assert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jorge Manrubia
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.4'
|
55
55
|
description: Assert utility for ruby. It lets you code your assumptions and code invariants,
|
@@ -61,9 +61,9 @@ executables: []
|
|
61
61
|
extensions: []
|
62
62
|
extra_rdoc_files: []
|
63
63
|
files:
|
64
|
-
- .gitignore
|
65
|
-
- .rspec
|
66
|
-
- .travis.yml
|
64
|
+
- ".gitignore"
|
65
|
+
- ".rspec"
|
66
|
+
- ".travis.yml"
|
67
67
|
- Gemfile
|
68
68
|
- LICENSE.txt
|
69
69
|
- README.md
|
@@ -78,24 +78,23 @@ homepage: https://github.com/jorgemanrubia/solid_assert
|
|
78
78
|
licenses:
|
79
79
|
- MIT
|
80
80
|
metadata: {}
|
81
|
-
post_install_message:
|
81
|
+
post_install_message:
|
82
82
|
rdoc_options: []
|
83
83
|
require_paths:
|
84
84
|
- lib
|
85
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '2.
|
89
|
+
version: '2.3'
|
90
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
|
-
- -
|
92
|
+
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0'
|
95
95
|
requirements: []
|
96
|
-
|
97
|
-
|
98
|
-
signing_key:
|
96
|
+
rubygems_version: 3.1.4
|
97
|
+
signing_key:
|
99
98
|
specification_version: 4
|
100
99
|
summary: Assert utility for ruby
|
101
100
|
test_files: []
|