validates_overlap 0.8.2 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1772233fdb3f2ca60d51a043c16c4ba7262315f0
4
- data.tar.gz: 0de150f4239778eeec8ee3d8e282dc5e1dcc255a
3
+ metadata.gz: b9dae06e643adf4f4a6eb421256e6d6e48d920c9
4
+ data.tar.gz: 917874d97876ac62d2ee48a0f18e2b031d086782
5
5
  SHA512:
6
- metadata.gz: e973e5fe6f7136bea964215b8ce8cef173fa143febf8ba782ba85a6e47c50d23517e4acb076bc1e1a1d3161b2a7c1fb62f752d610f2bba62c5d6295910409a84
7
- data.tar.gz: 2e4b0ae239225a3128c0855db6da2f87619e19d96d0b1df28c741d04333ef83bef1111adca6d8efec05642f5698f43d3a3c808699fc85d7fd225913ac0bcbfe5
6
+ metadata.gz: b2928b3fca519e208347d21b015348cceb3cfda570085b7234dd5c32b43d589e04c2a91f13888fceff780dad2e8b7d91c2b223f81d04b01362fe44365ec7a4c0
7
+ data.tar.gz: 6a7704bef1db53645010e021d880ebe9add11b8ebe17153b43b8f487134c5f3214120b3f5b009eb8c553aad5f3d1f48b0956a72859aa226359cdaadc2b1aecd3
data/README.md CHANGED
@@ -31,7 +31,7 @@ validates :starts_at, :ends_at, :overlap => true
31
31
  validates :starts_at, :ends_at, :overlap => {:scope => "user_id"}
32
32
  ```
33
33
 
34
- #### exclude edges
34
+ #### exclude edge(s)
35
35
 
36
36
  ```ruby
37
37
  validates :starts_at, :ends_at, :overlap => {:exclude_edges => "starts_at"}
@@ -44,10 +44,11 @@ validates :starts_at, :ends_at, :overlap => {:exclude_edges => ["starts_at", "en
44
44
  validates :starts_at, :ends_at, :overlap => {:start_shift => -1.day, :end_shift => 1.day}
45
45
  ```
46
46
 
47
- #### define custom validation key and message
47
+ #### define custom validation key(s) and message
48
48
 
49
49
  ```ruby
50
50
  validates :starts_at, :ends_at, :overlap => {:message_title => "Some validation title", :message_content => "Some validation message"}
51
+ validates :starts_at, :ends_at, :overlap => {:message_title => [:start_at, :end_at], :message_content => "Some validation message"}
51
52
  ```
52
53
 
53
54
  #### with complicated relations
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.2
1
+ 0.8.4
@@ -24,7 +24,13 @@ class OverlapValidator < ActiveModel::EachValidator
24
24
  end
25
25
 
26
26
  if record.respond_to? attributes.first
27
- record.errors.add(options[:message_title] || attributes.first, options[:message_content] || :overlap)
27
+ if options[:message_title].is_a?(Array)
28
+ options[:message_title].each do |key|
29
+ record.errors.add(key, options[:message_content] || :overlap)
30
+ end
31
+ else
32
+ record.errors.add(options[:message_title] || attributes.first, options[:message_content] || :overlap)
33
+ end
28
34
  else
29
35
  record.errors.add(options[:message_title] || :base, options[:message_content] || :overlap)
30
36
  end
@@ -18,5 +18,15 @@ describe OverlapValidator do
18
18
  subject.validate(meeting)
19
19
  expect(meeting.errors[:optional_key]).to eq ['Message content']
20
20
  end
21
+
22
+ it 'should be possible to configure multiple keys for message' do
23
+ subject = OverlapValidator.new(attributes: [:starts_at, :ends_at])
24
+ meeting = Meeting.new
25
+ expect(subject).to receive(:overlapped_exists?) { true }
26
+ allow(subject).to receive(:options) { { message_title: [:optional_key_1, 'optional_key_2'], message_content: 'Message content' } }
27
+ subject.validate(meeting)
28
+ expect(meeting.errors[:optional_key_1]).to eq ['Message content']
29
+ expect(meeting.errors[:optional_key_2]).to eq ['Message content']
30
+ end
21
31
  end
22
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_overlap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Bortlik