iknow_view_models 3.2.4 → 3.2.9

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: 6a61a46fa1aa74a456ed6a3d639b5bfa5a2e246b8b3772e2a34fab2bf9013722
4
- data.tar.gz: 9beba4e8d176ab4ae5da14e66da70f2747a8ee68faa5ba1b79821f7dd956ab56
3
+ metadata.gz: 5fb0d39720bec35a1d614fb80f5d172864bc12077cb628e7dec763aec9806035
4
+ data.tar.gz: d008347def1a6d36cfa3267b078e229bd72f0b43914859d02dd9c957e8a631b6
5
5
  SHA512:
6
- metadata.gz: 1ffc79be3e1479fe94f53400558133e0d98a333112502f183e8d78da9da95cb08187ab3eff20dd408ca12ed9172b74c25d15a6343407349b46b21576d2698d99
7
- data.tar.gz: be2a8e88134247eed00a3adc051c741f86ac3437d6f47c921ecfd1c16d5d4d39104901aaf8cc3b29804fcd62e1c8ccfd89943d1457b89fc6b4976513e2d57069
6
+ metadata.gz: 8af06a3614d642e65044e0ade5695cfff2bb38cef574330af77b6a84f7ea445d307be8bd27211d800eda5c23803e7241ed988e9e0ddd230da24fc00e6bc4002f
7
+ data.tar.gz: 128f5c1135c5a8be03ce2f8e397a686b64234d5711aa2599d4c640345946f8e8e937e9a2350d520e2679d0accf08a332d793f60040ec17b0f8fe6fe68a7e28fe
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IknowViewModels
4
- VERSION = '3.2.4'
4
+ VERSION = '3.2.9'
5
5
  end
@@ -243,9 +243,17 @@ class ViewModel
243
243
  schema_version == self.schema_version
244
244
  end
245
245
 
246
+ def schema_versions(viewmodels)
247
+ viewmodels.each_with_object({}) do |view, h|
248
+ h[view.view_name] = view.schema_version
249
+ end
250
+ end
251
+
246
252
  def schema_hash(schema_versions)
247
253
  version_string = schema_versions.to_a.sort.join(',')
248
- Base64.urlsafe_encode64(Digest::MD5.digest(version_string))
254
+ # We want a short hash value, as this will be used in cache keys
255
+ hash = Digest::SHA256.digest(version_string).byteslice(0, 16)
256
+ Base64.urlsafe_encode64(hash, padding: false)
249
257
  end
250
258
 
251
259
  def preload_for_serialization(viewmodels, serialize_context: new_serialize_context, include_referenced: true, lock: nil)
@@ -235,7 +235,7 @@ class ViewModel::ActiveRecord < ViewModel::Record
235
235
  next unless include_external || !data.external?
236
236
 
237
237
  data.viewmodel_classes.each do |vm|
238
- vm.dependent_viewmodels(seen, include_referenced: include_referenced)
238
+ vm.dependent_viewmodels(seen, include_referenced: include_referenced, include_external: include_external)
239
239
  end
240
240
  end
241
241
 
@@ -243,11 +243,10 @@ class ViewModel::ActiveRecord < ViewModel::Record
243
243
  end
244
244
 
245
245
  def deep_schema_version(include_referenced: true, include_external: true)
246
- (@deep_schema_version ||= {})[include_referenced] ||=
246
+ (@deep_schema_version ||= {})[[include_referenced, include_external]] ||=
247
247
  begin
248
- dependent_viewmodels(include_referenced: include_referenced, include_external: include_external).each_with_object({}) do |view, h|
249
- h[view.view_name] = view.schema_version
250
- end.freeze
248
+ vms = dependent_viewmodels(include_referenced: include_referenced, include_external: include_external)
249
+ ViewModel.schema_versions(vms).freeze
251
250
  end
252
251
  end
253
252
 
@@ -4,6 +4,7 @@ class ViewModel::Migration::NoPathError < ViewModel::AbstractError
4
4
  attr_reader :vm_name, :from, :to
5
5
 
6
6
  status 400
7
+ code 'Migration.NoPathError'
7
8
 
8
9
  def initialize(viewmodel, from, to)
9
10
  @vm_name = viewmodel.view_name
@@ -4,6 +4,7 @@ class ViewModel::Migration::OneWayError < ViewModel::AbstractError
4
4
  attr_reader :vm_name, :direction
5
5
 
6
6
  status 400
7
+ code 'Migration.OneWayError'
7
8
 
8
9
  def initialize(vm_name, direction)
9
10
  @vm_name = vm_name
@@ -4,6 +4,7 @@ class ViewModel::Migration::UnspecifiedVersionError < ViewModel::AbstractError
4
4
  attr_reader :vm_name, :version
5
5
 
6
6
  status 400
7
+ code 'Migration.UnspecifiedVersionError'
7
8
 
8
9
  def initialize(vm_name, version)
9
10
  @vm_name = vm_name
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iknow_view_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.4
4
+ version: 3.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - iKnow Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-20 00:00:00.000000000 Z
11
+ date: 2020-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord