validy 1.0.99 → 1.1.3

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.
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: