roqua-support 0.1.19 → 0.1.20
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/CHANGELOG.md +4 -0
- data/README.md +16 -0
- data/lib/roqua-support/version.rb +1 -1
- data/lib/roqua/validators/subset_validator.rb +12 -0
- data/spec/roqua/validators/subset_validator_spec.rb +39 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e8bd876218d378c21add709e9625782de687197
|
4
|
+
data.tar.gz: 8edb8923293e61035707854c43f3b04b937359ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f46cd09d06f2b1d094c4de58dba69d3e0d5bf632390b6190d0f7694ee975500c0bb70f7d420fddc7d295ac68d4a0dc032e45821a26490b0580be98cd8205f0ac
|
7
|
+
data.tar.gz: 3f1b4ddf2053b3d7fe7d7e7e92b21f3b7f52cd141e5c0b9a8250b15803a1e1ed6f1d88ab414746b614b1e7a1c5d673795535bc7114416c27d537c1d56d80f872
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -103,6 +103,22 @@ DurationFilterOperation.run(duration: {value: 1, unit: 'weeks'})
|
|
103
103
|
Allows you to specify an ActiveSupport::Duration attribute.
|
104
104
|
|
105
105
|
|
106
|
+
### Validators
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
require 'roqua/validators/subset_validator'
|
110
|
+
```
|
111
|
+
|
112
|
+
In errors.yml (Optional - Given defaults are available)
|
113
|
+
```
|
114
|
+
nl:
|
115
|
+
errors:
|
116
|
+
messages:
|
117
|
+
subset: bevat onbekende keuzes
|
118
|
+
```
|
119
|
+
|
120
|
+
|
121
|
+
|
106
122
|
## Contributing
|
107
123
|
|
108
124
|
1. Fork it
|
@@ -0,0 +1,12 @@
|
|
1
|
+
I18n.backend.store_translations :nl, errors: {
|
2
|
+
messages: { subset: 'bevat onbekende keuzes' }
|
3
|
+
}
|
4
|
+
|
5
|
+
class SubsetValidator < ActiveModel::EachValidator
|
6
|
+
def validate_each(record, attribute, value)
|
7
|
+
return unless value
|
8
|
+
unless value.all? { |element| options.fetch(:of).include? element }
|
9
|
+
record.errors[attribute] << (options[:message] || I18n.t('errors.messages.subset'))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'roqua/validators/subset_validator'
|
3
|
+
|
4
|
+
describe SubsetValidator do
|
5
|
+
let(:validatable) do
|
6
|
+
Class.new do
|
7
|
+
include ActiveModel::Validations
|
8
|
+
|
9
|
+
attr_accessor :list
|
10
|
+
|
11
|
+
validates :list, subset: {of: [1, 2, 3]}
|
12
|
+
|
13
|
+
def initialize(list)
|
14
|
+
self.list = list
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'allows nil values' do
|
20
|
+
expect(validatable.new(nil)).to be_valid
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'allows empty arrays' do
|
24
|
+
expect(validatable.new([])).to be_valid
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'allows a subset' do
|
28
|
+
expect(validatable.new([1])).to be_valid
|
29
|
+
expect(validatable.new([1, 2])).to be_valid
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'allows exact match to set' do
|
33
|
+
expect(validatable.new([1, 2, 3])).to be_valid
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'does not allow an element not in the set' do
|
37
|
+
expect(validatable.new([1, 2, 100])).not_to be_valid
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- lib/roqua/support/request_logger.rb
|
130
130
|
- lib/roqua/support/stats.rb
|
131
131
|
- lib/roqua/support/stats/hosted_graphite_backend.rb
|
132
|
+
- lib/roqua/validators/subset_validator.rb
|
132
133
|
- roqua-support.gemspec
|
133
134
|
- spec/roqua/core_ext/active_interaction/date_time_as_unix_extension_spec.rb
|
134
135
|
- spec/roqua/core_ext/active_interaction/duration_filter_spec.rb
|
@@ -146,6 +147,7 @@ files:
|
|
146
147
|
- spec/roqua/support/request_logger_spec.rb
|
147
148
|
- spec/roqua/support/stats_spec.rb
|
148
149
|
- spec/roqua/support_spec.rb
|
150
|
+
- spec/roqua/validators/subset_validator_spec.rb
|
149
151
|
- spec/spec_helper.rb
|
150
152
|
homepage: https://github.com/roqua/roqua-support
|
151
153
|
licenses:
|
@@ -188,5 +190,6 @@ test_files:
|
|
188
190
|
- spec/roqua/support/request_logger_spec.rb
|
189
191
|
- spec/roqua/support/stats_spec.rb
|
190
192
|
- spec/roqua/support_spec.rb
|
193
|
+
- spec/roqua/validators/subset_validator_spec.rb
|
191
194
|
- spec/spec_helper.rb
|
192
195
|
has_rdoc:
|