blueprinter 1.0.0 → 1.0.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: 0daefad3d40a1c147e4dff6ae392a0b36f344fac7b79b6a500bc39fbe50885bf
4
- data.tar.gz: 41d4753399f53d94030ef650b7433399030ae282fe5e85124cee83f86b7558f3
3
+ metadata.gz: 8f568763ae7429ac9d060433ca9b95ac7c22642bea54b615e27325976b2fe9ec
4
+ data.tar.gz: e613aab3c612acef0077905839d63f87b15ecf698b16a5df6d7103daa47e904c
5
5
  SHA512:
6
- metadata.gz: ff8384ffb0de03cfa91422313656a6e7ff9375b3335cdab1371e8a60db65a5cd9fbacaac1f32961c86e9bd213678cfdcd5911fc4a183962dbf57df8ff6155e54
7
- data.tar.gz: f0cf694fd5984a274f8bfb2a664f7b6baa4406ee98a08a5666c2ccbf0e275627f3ed779e9770f3e6d506dc0b84eecb9ae3546846cd59819e93d1ea4676b63233
6
+ metadata.gz: 9f81f013c2a94c7acad72dea46d2c8e0d472311f13e2588fd78c53c0ab23b2c8a86e55be64b49c690485d6aaca8d506545255c29bed456cef1c6aece5d0271fd
7
+ data.tar.gz: ac3eaa8b6c4d1f9883ae1117d9c30b3c8801cab831ae9d474e3d5bafc3417cfaeef18f52305059909234f7b60a03906645b5fcdd7615f8dc4e880c859610830a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.0.2 - 2024/02/02
2
+ * 🐛 [BUGFIX] Fixes an issue with reflection where fields are incorrectly override by their definitions in the default view. See [#391](https://github.com/procore-oss/blueprinter/pull/391). Thanks to [@elliothursh](https://github.com/elliothursh).
3
+
4
+ ## 1.0.1 - 2024/01/19
5
+ * 🐛 [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).
6
+
1
7
  ## 1.0.0 - 2024/01/17
2
8
  * 🚀 [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
9
  * 🚀 [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).
@@ -48,7 +48,7 @@ module Blueprinter
48
48
  @fields ||= @view_collection.fields_for(name).each_with_object({}) do |field, obj|
49
49
  next if field.options[:association]
50
50
 
51
- obj[field.method] = Field.new(field.method, field.name, field.options)
51
+ obj[field.name] = Field.new(field.method, field.name, field.options)
52
52
  end
53
53
  end
54
54
 
@@ -63,7 +63,7 @@ module Blueprinter
63
63
 
64
64
  blueprint = field.options.fetch(:blueprint)
65
65
  view = field.options[:view] || :default
66
- obj[field.method] = Association.new(field.method, field.name, blueprint, view, field.options)
66
+ obj[field.name] = Association.new(field.method, field.name, blueprint, view, field.options)
67
67
  end
68
68
  end
69
69
  end
@@ -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.2'
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.2
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-02-04 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