iknow_view_models 3.2.4 → 3.2.9

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