datacaster 3.2.0 → 3.2.2

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
  SHA256:
3
- metadata.gz: e213cf1bdf261dd4b20b32c5305ace7a0e6c8efac93108136b8ded182e7ff2c3
4
- data.tar.gz: ee5776b8f888400a01c9463677690aa69e1c45ae497f3d7d6bae0c714e19a191
3
+ metadata.gz: dd23c11d4adffee6cbdc30b7a74f2f8d6964b4ebcdb0fd2e94576f28c4fc7407
4
+ data.tar.gz: '0949319f7e070757a51c619cf2e77d355df177ba84f010835a517243d2ad76ec'
5
5
  SHA512:
6
- metadata.gz: 27b618c2662a249dbee5476a6888a581e5cef2a1de2b038357c99c552ca118667776bd69768607b3440237061b6d364bf07104ae697d943a22c3209192f83f69
7
- data.tar.gz: 11895a503d2e7f9980e41067b2fd4d7d51ba3d2eaa2347143d25e44c6c2fc5601fd2d121cf17bb0f3104b0097dae695b0ce20084efb07c5b7a6e3e605b1000ec
6
+ metadata.gz: 3c0edbe35ee2b7b8a0f450df81defbb89371b09ad3f18fd72e55a1b9f7e143d765c9cbe72ca1ab8ce84e25c822dec289e20cdddca2c36044551f0c27f577cc2d
7
+ data.tar.gz: 7cea5130149612f5b73e58d426ec28bf34322c57cef08fb601c83537aaeda1769a91c58ca91641cb964883d32fb8c737e68856633646f6c2ec7b792079dc39e8
data/README.md CHANGED
@@ -58,7 +58,7 @@ It is currently used in production in several projects (mainly as request parame
58
58
  - [`try(error_key = nil, catched_exception:) { |value| ... }`](#tryerror_key--nil-catched_exception--value--)
59
59
  - [`validate(active_model_validations, name = 'Anonymous')`](#validateactive_model_validations-name--anonymous)
60
60
  - [`compare(reference_value, error_key = nil)`](#comparereference_value-error_key--nil)
61
- - [`included_in(*reference_values, error_key: nil)`](#included_inreference_values-error_key-nil)
61
+ - [`included_in(reference_values, error_key: nil)`](#included_inreference_values-error_key-nil)
62
62
  - [`relate(left, op, right, error_key: nil)`](#relateleft-op-right-error_key-nil)
63
63
  - [`run { |value| ... }`](#run--value--)
64
64
  - [`transform { |value| ... }`](#transform--value--)
@@ -988,7 +988,7 @@ agreed_with_tos =
988
988
 
989
989
  I18n keys: `error_key`, `'.compare'`, `'datacaster.errors.compare'`. Adds `reference` i18n variable, setting it to `reference_value.to_s`.
990
990
 
991
- #### `included_in(*reference_values, error_key: nil)`
991
+ #### `included_in(reference_values, error_key: nil)`
992
992
 
993
993
  Returns ValidResult if and only if `reference_values.include?` the value.
994
994
 
@@ -24,8 +24,9 @@ module Datacaster
24
24
  def transform_result(result)
25
25
  return result unless result.valid?
26
26
  result = cast_success(result)
27
- if @runtime.instance_variable_get(:@parent).respond_to?(:checked_schema=)
28
- @runtime.instance_variable_get(:@parent).checked_schema = @runtime.checked_schema
27
+ parent_runtime = @runtime.instance_variable_get(:@parent)
28
+ if parent_runtime.respond_to?(:checked_schema!)
29
+ parent_runtime.checked_schema!(@runtime.checked_schema)
29
30
  end
30
31
  result
31
32
  end
@@ -330,7 +330,7 @@ module Datacaster
330
330
  hash_value(error_key) & transform { |x| x.symbolize_keys }
331
331
  end
332
332
 
333
- def included_in(*values, error_key: nil)
333
+ def included_in(values, error_key: nil)
334
334
  error_keys = ['.included_in', 'datacaster.errors.included_in']
335
335
  error_keys.unshift(error_key) if error_key
336
336
  check { |x| values.include?(x) }.i18n_key(*error_keys, reference: values.map(&:to_s).join(', '))
@@ -35,6 +35,10 @@ module Datacaster
35
35
  @should_check_stack[-1] = true
36
36
  end
37
37
 
38
+ def checked_schema!(schema)
39
+ @pointer_stack[-1].merge!(schema)
40
+ end
41
+
38
42
  def ignore_checks!(&block)
39
43
  @ignore = true
40
44
  result = yield
@@ -4,7 +4,8 @@ module Datacaster
4
4
  @base = base
5
5
 
6
6
  if Datacaster::Utils.pickable?(@base)
7
- @base = Datacaster::Predefined.pick(@base)
7
+ @base = Datacaster::Predefined.run { checked_key!(base) } &
8
+ Datacaster::Predefined.pick(base)
8
9
  end
9
10
 
10
11
  if !@base.nil? && !Datacaster.instance?(@base)
@@ -1,3 +1,3 @@
1
1
  module Datacaster
2
- VERSION = "3.2.0"
2
+ VERSION = "3.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datacaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Zolotarev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-08 00:00:00.000000000 Z
11
+ date: 2023-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel