attestor 2.2.0 → 2.2.1
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 +4 -4
- data/.travis.yml +11 -0
- data/CHANGELOG.md +11 -0
- data/README.md +19 -29
- data/lib/attestor/policy.rb +1 -1
- data/lib/attestor/validations.rb +2 -2
- data/lib/attestor/version.rb +1 -1
- data/spec/tests/policy_spec.rb +7 -1
- metadata +30 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b26004a47b4a2f4d72a9835df97dd5e7e27a9ce
|
4
|
+
data.tar.gz: adcec1adac536d8631635e7a56a73be453ea69b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcd51a252c80d81785a41a02fa1b68483e076b86e14f9c5ec253e1e158ce51c3915e7f45118318add1106b683faf155e9a3cf5b84b32e336c0138c94e6c65345
|
7
|
+
data.tar.gz: 640ac4003afe4e893f64f010f27162047804cbbda668a4e3d19e5b9d6c1cda1418e8b11620cd1741b7035f478f4a5743f5107866d30f7489be379e04c4410eeb
|
data/.travis.yml
CHANGED
@@ -1,9 +1,20 @@
|
|
1
1
|
---
|
2
2
|
language: ruby
|
3
|
+
sudo: false
|
4
|
+
cache: bundler
|
3
5
|
bundler_args: --without metrics
|
4
6
|
script: rake test:coverage:run
|
5
7
|
rvm:
|
8
|
+
- '1.9.3'
|
6
9
|
- '2.0'
|
10
|
+
- '2.1'
|
11
|
+
- '2.2'
|
7
12
|
- ruby-head
|
13
|
+
- rbx-2 --1.9
|
8
14
|
- rbx-2 --2.0
|
9
15
|
- jruby-9.0.0.0.pre1
|
16
|
+
- jruby-head
|
17
|
+
matrix:
|
18
|
+
allow_failures:
|
19
|
+
- rvm: ruby-head
|
20
|
+
- rvm: jruby-head
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
## v2.2.1 2015-05-31
|
2
|
+
|
3
|
+
### Fixed
|
4
|
+
|
5
|
+
* Bug in calling `Attestor::Policy.new` with a block (gregory)
|
6
|
+
|
7
|
+
### Internal
|
8
|
+
|
9
|
+
* Compatibility to rubies API 1.9.3+ (gregory)
|
10
|
+
|
11
|
+
[Compare v2.2.0...v2.2.1](https://github.com/nepalez/attestor/compare/v2.2.0...v2.2.1)
|
data/README.md
CHANGED
@@ -40,9 +40,9 @@ Approach
|
|
40
40
|
Instead of collecting errors inside the object, the module defines two instance methods:
|
41
41
|
|
42
42
|
* `validate!` raises an exception (`Attestor::InvalidError`), that carries errors outside of the object.
|
43
|
-
* `validate` - the safe version of `validate!`. It rescues
|
43
|
+
* `validate` - the safe version of `validate!`. It rescues from the exception and returns a report object, that carries the exception as well as its error messages.
|
44
44
|
|
45
|
-
|
45
|
+
In both cases the inspected object stays untouched (and can be made immutable).
|
46
46
|
|
47
47
|
Installation
|
48
48
|
------------
|
@@ -66,8 +66,8 @@ Or add it manually:
|
|
66
66
|
gem install attestor
|
67
67
|
```
|
68
68
|
|
69
|
-
|
70
|
-
|
69
|
+
Base Use
|
70
|
+
--------
|
71
71
|
|
72
72
|
Declare validation in the same way as ActiveModel's `.validate` method does:
|
73
73
|
|
@@ -135,8 +135,6 @@ report.messages # => ["Credit differs from debet by 10"]
|
|
135
135
|
report.error # => <Attestor::InvalidError ...>
|
136
136
|
```
|
137
137
|
|
138
|
-
Once again, the report collects messages outside of the checked object.
|
139
|
-
|
140
138
|
Use of Contexts
|
141
139
|
---------------
|
142
140
|
|
@@ -344,25 +342,14 @@ expect(object.validate).to be_valid
|
|
344
342
|
expect(object.validate).to be_invalid
|
345
343
|
```
|
346
344
|
|
347
|
-
Latest changes
|
348
|
-
--------------
|
349
|
-
|
350
|
-
### Version 2.0.0
|
351
|
-
|
352
|
-
1. The method `#validate` doesn't raise an error. It returns a validation results report. To raise an exception use the unsafe `#validate!` method (see [Basic Use](#basic-use) for details).
|
353
|
-
|
354
|
-
2. Policies doesn't have `#valid?` and `#invalid?` methods any longer. Both the methods are removed to `#validate` report.
|
355
|
-
|
356
|
-
### Version 2.1.0
|
357
|
-
|
358
345
|
Compatibility
|
359
346
|
-------------
|
360
347
|
|
361
|
-
Tested under rubies compatible to rubies with API
|
348
|
+
Tested under rubies compatible to rubies with API 1.9.3+:
|
362
349
|
|
363
|
-
* MRI
|
364
|
-
* Rubinius-2 (
|
365
|
-
* JRuby
|
350
|
+
* MRI 1.9.3+
|
351
|
+
* Rubinius-2 (modes 1.9+)
|
352
|
+
* JRuby 9.0.0.0.pre1+
|
366
353
|
|
367
354
|
Uses [RSpec] 3.0+ for testing and [hexx-suit] for dev/test tools collection.
|
368
355
|
|
@@ -372,15 +359,18 @@ Uses [RSpec] 3.0+ for testing and [hexx-suit] for dev/test tools collection.
|
|
372
359
|
Contributing
|
373
360
|
------------
|
374
361
|
|
375
|
-
* Fork the project.
|
376
362
|
* Read the [STYLEGUIDE](config/metrics/STYLEGUIDE).
|
377
|
-
*
|
378
|
-
*
|
379
|
-
|
380
|
-
* Commit
|
381
|
-
|
382
|
-
|
383
|
-
|
363
|
+
* Fork the project
|
364
|
+
* Create your feature branch (`git checkout -b my-new-feature`)
|
365
|
+
* Add tests for it
|
366
|
+
* Commit your changes (`git commit -am '[UPDATE] Add some feature'`)
|
367
|
+
* Push to the branch (`git push origin my-new-feature`)
|
368
|
+
* Create a new Pull Request
|
369
|
+
|
370
|
+
Latest Changes
|
371
|
+
--------------
|
372
|
+
|
373
|
+
See the [CHANGELOG](CHANGELOG.md)
|
384
374
|
|
385
375
|
License
|
386
376
|
-------
|
data/lib/attestor/policy.rb
CHANGED
data/lib/attestor/validations.rb
CHANGED
@@ -128,8 +128,8 @@ module Attestor
|
|
128
128
|
# @param [Proc] block
|
129
129
|
#
|
130
130
|
# @return [undefined]
|
131
|
-
def validations(
|
132
|
-
Context.new(self, options).instance_eval(&block) if block_given?
|
131
|
+
def validations(*options, &block)
|
132
|
+
Context.new(self, Hash[*options]).instance_eval(&block) if block_given?
|
133
133
|
end
|
134
134
|
|
135
135
|
end # module ClassMethods
|
data/lib/attestor/version.rb
CHANGED
data/spec/tests/policy_spec.rb
CHANGED
@@ -37,8 +37,14 @@ describe Attestor::Policy do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "yields the block in class scope" do
|
40
|
-
subject = described_class.new(:foo)
|
40
|
+
subject = described_class.new(:foo) do
|
41
|
+
attr_reader :bar
|
42
|
+
def foobar; end
|
43
|
+
def self.barfoo; end
|
44
|
+
end
|
41
45
|
expect(subject.new(:baz)).to respond_to :bar
|
46
|
+
expect(subject.new(:baz)).to respond_to :foobar
|
47
|
+
expect(subject.new(:baz).class).to respond_to :barfoo
|
42
48
|
end
|
43
49
|
|
44
50
|
end # describe .new
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attestor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kozin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: extlib
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.9'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hexx-rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.4'
|
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
40
|
version: '0.4'
|
41
41
|
description: Validations for immutable Ruby objects
|
@@ -46,13 +46,14 @@ extra_rdoc_files:
|
|
46
46
|
- README.md
|
47
47
|
- LICENSE
|
48
48
|
files:
|
49
|
-
- .coveralls.yml
|
50
|
-
- .gitignore
|
51
|
-
- .metrics
|
52
|
-
- .rspec
|
53
|
-
- .rubocop.yml
|
54
|
-
- .travis.yml
|
55
|
-
- .yardopts
|
49
|
+
- ".coveralls.yml"
|
50
|
+
- ".gitignore"
|
51
|
+
- ".metrics"
|
52
|
+
- ".rspec"
|
53
|
+
- ".rubocop.yml"
|
54
|
+
- ".travis.yml"
|
55
|
+
- ".yardopts"
|
56
|
+
- CHANGELOG.md
|
56
57
|
- Gemfile
|
57
58
|
- Guardfile
|
58
59
|
- LICENSE
|
@@ -121,12 +122,12 @@ require_paths:
|
|
121
122
|
- lib
|
122
123
|
required_ruby_version: !ruby/object:Gem::Requirement
|
123
124
|
requirements:
|
124
|
-
- - ~>
|
125
|
+
- - "~>"
|
125
126
|
- !ruby/object:Gem::Version
|
126
127
|
version: '2.0'
|
127
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
129
|
requirements:
|
129
|
-
- -
|
130
|
+
- - ">="
|
130
131
|
- !ruby/object:Gem::Version
|
131
132
|
version: '0'
|
132
133
|
requirements: []
|
@@ -137,24 +138,24 @@ specification_version: 4
|
|
137
138
|
summary: Validations for immutable Ruby objects
|
138
139
|
test_files:
|
139
140
|
- spec/spec_helper.rb
|
140
|
-
- spec/tests/policy_spec.rb
|
141
141
|
- spec/tests/invalid_error_spec.rb
|
142
|
-
- spec/tests/validations_spec.rb
|
143
|
-
- spec/tests/report_spec.rb
|
144
|
-
- spec/tests/validations/context_spec.rb
|
145
|
-
- spec/tests/validations/message_spec.rb
|
146
|
-
- spec/tests/validations/validator_spec.rb
|
147
|
-
- spec/tests/validations/reporter_spec.rb
|
148
|
-
- spec/tests/validations/delegator_spec.rb
|
149
|
-
- spec/tests/validations/validators_spec.rb
|
150
|
-
- spec/tests/policy/or_spec.rb
|
151
|
-
- spec/tests/policy/factory_spec.rb
|
152
|
-
- spec/tests/policy/and_spec.rb
|
153
142
|
- spec/tests/policy/xor_spec.rb
|
154
143
|
- spec/tests/policy/negator_spec.rb
|
155
|
-
- spec/tests/policy/
|
144
|
+
- spec/tests/policy/factory_spec.rb
|
156
145
|
- spec/tests/policy/node_spec.rb
|
146
|
+
- spec/tests/policy/and_spec.rb
|
147
|
+
- spec/tests/policy/not_spec.rb
|
148
|
+
- spec/tests/policy/or_spec.rb
|
157
149
|
- spec/tests/rspec_spec.rb
|
158
|
-
- spec/
|
150
|
+
- spec/tests/validations/context_spec.rb
|
151
|
+
- spec/tests/validations/validator_spec.rb
|
152
|
+
- spec/tests/validations/delegator_spec.rb
|
153
|
+
- spec/tests/validations/message_spec.rb
|
154
|
+
- spec/tests/validations/reporter_spec.rb
|
155
|
+
- spec/tests/validations/validators_spec.rb
|
156
|
+
- spec/tests/policy_spec.rb
|
157
|
+
- spec/tests/validations_spec.rb
|
158
|
+
- spec/tests/report_spec.rb
|
159
159
|
- spec/support/policies.rb
|
160
|
+
- spec/features/example_spec.rb
|
160
161
|
has_rdoc:
|