validy 1.0.99 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/validy.rb +11 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d89bc7ec77c5a43d71df94fa67ed470ec6865eb251779ece8e4cf8d34dd85247
4
- data.tar.gz: 3e8e93f9566766992b46c30db7e9b1013eb55d758b3a8524775545ed7c0bdad2
3
+ metadata.gz: 4a9e940d02f71db4c73e4685ba00dbbfd39e3a88bf743b77612873555e85a071
4
+ data.tar.gz: 12f5aba56bf4638452a61c57be6adae2a5bb4a153a39c40e48acdf0ba6134533
5
5
  SHA512:
6
- metadata.gz: 9eb955a7874c1df5da04f1f5ab99a8f5d5c84bbbc58f12532f8f69ba728559af93adcd48f4a85bb1117c569586683b9f608bacfba5654a1449b7a0db6850a9ea
7
- data.tar.gz: f3c7310ee04b5d41dbf35188afb4ba73a8ac779013636f485caa89afd803e580e846839387bf04e663944de20a561afc4d1b6dd3db5c7a357007fc2a43318f92
6
+ metadata.gz: a6d6f968d08f66ec0016052595607c91d8b65977338c62114b6262de7e4e720f003a92d73828fc1effed0d8f1282574a29f7bfab4e9052bb68a15d911e8411f2
7
+ data.tar.gz: 21f5f6e2935367cd191d4aa49e77ef218da902d7b18c0f99089ddfbb511bdf0c690c4cb5629aa498d0d6c4e41b26ee8e86fbcbb1f74f54ab5f7ca021af2ab3ff
data/lib/validy.rb CHANGED
@@ -31,8 +31,9 @@ module Validy
31
31
 
32
32
  module ClassMethods
33
33
  # @param [String] method - indicates custom, must be implemented method for which will be triggered for defining
34
+ # @param [Array<String>] - optional, list of the instance variables for checking valid state while using setter
34
35
  # validation state
35
- def validy_on(method:)
36
+ def validy_on(method:, setters: [])
36
37
  method_with_bang_name = (method[-1] == '!' ? method.to_s : "#{method}!")
37
38
  method_without_bang_name = method_with_bang_name.gsub('!', '')
38
39
 
@@ -55,6 +56,15 @@ module Validy
55
56
  end
56
57
  raise ::Validy::Error, stringified_error unless valid?
57
58
  end
59
+
60
+ if setters.any?
61
+ setters.each do |name|
62
+ define_method("#{name}=".to_sym) do |val|
63
+ instance_variable_set("@#{name}", val)
64
+ method[-1] == '!' ? send(method_with_bang) : send(method_without_bang)
65
+ end
66
+ end
67
+ end
58
68
  end
59
69
  prepend hooks
60
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.99
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Saltykov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-09 00:00:00.000000000 Z
11
+ date: 2022-11-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: