datacaster 3.2.0 → 3.2.2

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