blueprinter 1.0.0 → 1.0.1

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: 0daefad3d40a1c147e4dff6ae392a0b36f344fac7b79b6a500bc39fbe50885bf
4
- data.tar.gz: 41d4753399f53d94030ef650b7433399030ae282fe5e85124cee83f86b7558f3
3
+ metadata.gz: cbfbe1f528a76df294a8a0a481287bae62501177d7ce4a61d9123b0f86b324ad
4
+ data.tar.gz: fd176efc51674471cf7626e8e88bb9bd67c7b6a4f3c9349be1f9526969abb1de
5
5
  SHA512:
6
- metadata.gz: ff8384ffb0de03cfa91422313656a6e7ff9375b3335cdab1371e8a60db65a5cd9fbacaac1f32961c86e9bd213678cfdcd5911fc4a183962dbf57df8ff6155e54
7
- data.tar.gz: f0cf694fd5984a274f8bfb2a664f7b6baa4406ee98a08a5666c2ccbf0e275627f3ed779e9770f3e6d506dc0b84eecb9ae3546846cd59819e93d1ea4676b63233
6
+ metadata.gz: 1b8d633ae1d043fd0093a767da7bc75b37d771bbc1ea9188d28a2ae0645023f5c8cf54b20733f3d0b5d4f234df0ed017c850d3b5a2a8dae2f29f865dbd9bf6df
7
+ data.tar.gz: 8ec5c9f89365950a92ae56400898bf9b1a5b8e372905d6be66024b6f733d11b85cd23bf2374eccb0d82e21b25c377f3b67cef2514db7ffd9b378605986bb2ea7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 1.0.1 - 2024/01/19
2
+ * 🐛 [BUGFIX] Fixes an issue where serialization performance would become degraded when using a Blueprint that leverages transformers. See [#381](https://github.com/procore-oss/blueprinter/pull/381). Thanks to [@Pritilender](https://github.com/Pritilender).
3
+
1
4
  ## 1.0.0 - 2024/01/17
2
5
  * 🚀 [BREAKING] Allow transformers to be included across views. See [README](https://github.com/procore-oss/blueprinter#transform-across-views), PR [#372](https://github.com/procore-oss/blueprinter/pull/372) and issue [#225](https://github.com/procore-oss/blueprinter/issues/225) for details. Note this changes the behavior of transformers which were previously only applied to the view they were defined on. Thanks to [@njbbaer](https://github.com/njbbaer) and [@bhooshiek-narendiran](https://github.com/bhooshiek-narendiran).
3
6
  * 🚀 [FEATURE] Introduce extension API, with initial support for pre_render hook. See [#358](https://github.com/procore-oss/blueprinter/pull/358) for details. Thanks to [@jhollinger](https://github.com/jhollinger).
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Blueprinter
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
@@ -36,7 +36,7 @@ module Blueprinter
36
36
 
37
37
  def transformers(view_name)
38
38
  included_transformers = gather_transformers_from_included_views(view_name).reverse
39
- all_transformers = views[:default].view_transformers.concat(included_transformers).uniq
39
+ all_transformers = [*views[:default].view_transformers, *included_transformers].uniq
40
40
  all_transformers.empty? ? Blueprinter.configuration.default_transformers : all_transformers
41
41
  end
42
42
 
@@ -94,11 +94,12 @@ module Blueprinter
94
94
 
95
95
  def gather_transformers_from_included_views(view_name)
96
96
  current_view = views[view_name]
97
- current_view.included_view_names.flat_map do |included_view_name|
97
+ already_included_transformers = current_view.included_view_names.flat_map do |included_view_name|
98
98
  next [] if view_name == included_view_name
99
99
 
100
100
  gather_transformers_from_included_views(included_view_name)
101
- end.concat(current_view.view_transformers)
101
+ end
102
+ [*already_included_transformers, *current_view.view_transformers].uniq
102
103
  end
103
104
  end
104
105
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueprinter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Procore Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-18 00:00:00.000000000 Z
11
+ date: 2024-01-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Blueprinter is a JSON Object Presenter for Ruby that takes business objects
14
14
  and breaks them down into simple hashes and serializes them to JSON. It can be used
@@ -70,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  - !ruby/object:Gem::Version
71
71
  version: '0'
72
72
  requirements: []
73
- rubygems_version: 3.4.10
73
+ rubygems_version: 3.4.19
74
74
  signing_key:
75
75
  specification_version: 4
76
76
  summary: Simple Fast Declarative Serialization Library