jpie 3.7.0 → 3.8.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 +4 -4
- data/.rubocop.yml +58 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -1
- data/PERFORMANCE_BASELINE.md +458 -99
- data/README.md +3 -3
- data/Rakefile +5 -0
- data/lib/json_api/active_storage/serialization.rb +23 -6
- data/lib/json_api/controllers/concerns/relationships/serialization.rb +18 -3
- data/lib/json_api/controllers/concerns/resource_actions/include_preloading.rb +58 -12
- data/lib/json_api/controllers/concerns/resource_actions/serialization.rb +55 -13
- data/lib/json_api/railtie.rb +6 -1
- data/lib/json_api/resources/resource_loader.rb +35 -2
- data/lib/json_api/routing.rb +10 -0
- data/lib/json_api/serialization/concerns/include_filtering.rb +7 -41
- data/lib/json_api/serialization/concerns/includes_serialization.rb +7 -15
- data/lib/json_api/serialization/concerns/meta_serialization.rb +8 -5
- data/lib/json_api/serialization/include_filter_cache.rb +113 -0
- data/lib/json_api/serialization/serializer.rb +15 -3
- data/lib/json_api/support/type_conversion.rb +24 -6
- data/lib/json_api/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4d78efd83c17a8d1e0b9c7e13966c083de82d95d92463dd5b945a4478d981c30
|
|
4
|
+
data.tar.gz: 71594c1b5687a4d20268d79b4e83e3760d399f3467029b8f0787329b6cf599fa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e1bdbd01c0c181b59be183a8d72decb7d3e13f254c92cd477285f69a909953d4bfe58f6dff6001ddbc437036888e30b6ab9e921675fd65a70003206f714f37ac
|
|
7
|
+
data.tar.gz: 6bdadef777e82f021a67b820e77e61a7c2051dbb5cddc037447b0c42c26c3142cc738f8a6aa864ef26b2cfb19a3a0f5e6f6a42afd5ec483b1049bd15d24acf52
|
data/.rubocop.yml
CHANGED
|
@@ -47,6 +47,10 @@ Metrics/BlockLength:
|
|
|
47
47
|
|
|
48
48
|
Metrics/ParameterLists:
|
|
49
49
|
CountKeywordArgs: false
|
|
50
|
+
Exclude:
|
|
51
|
+
# Seed helpers thread id pools positionally; a params object would add
|
|
52
|
+
# indirection to throwaway scaffolding.
|
|
53
|
+
- "spec/benchmarks/**/*"
|
|
50
54
|
|
|
51
55
|
# Naming - allow DSL methods
|
|
52
56
|
Naming/PredicatePrefix:
|
|
@@ -95,6 +99,9 @@ Lint/UnusedBlockArgument:
|
|
|
95
99
|
# Security PoC specs configure authorization handlers via keyword lambdas
|
|
96
100
|
# that intentionally ignore some of the required keyword arguments.
|
|
97
101
|
- "spec/requests/regression/*_spec.rb"
|
|
102
|
+
# The benchmark suite and filter-batching specs configure the same hooks.
|
|
103
|
+
- "spec/benchmarks/**/*"
|
|
104
|
+
- "spec/jsonapi_spec/query_parameters/include_filter_batching_spec.rb"
|
|
98
105
|
|
|
99
106
|
# Security PoC regression specs read as a single sequential narrative
|
|
100
107
|
# (sanity check -> attack -> assert), so a handful of expectations per example
|
|
@@ -102,10 +109,61 @@ Lint/UnusedBlockArgument:
|
|
|
102
109
|
RSpec/MultipleExpectations:
|
|
103
110
|
Exclude:
|
|
104
111
|
- "spec/requests/regression/*_spec.rb"
|
|
112
|
+
- "spec/benchmarks/**/*"
|
|
105
113
|
|
|
106
114
|
RSpec/ExampleLength:
|
|
107
115
|
Exclude:
|
|
108
116
|
- "spec/requests/regression/*_spec.rb"
|
|
117
|
+
- "spec/benchmarks/**/*"
|
|
118
|
+
|
|
119
|
+
# The benchmark suite reads as data tables (seed rows, scenario matrices,
|
|
120
|
+
# result formatting). Splitting those methods obscures the data shapes, and
|
|
121
|
+
# the suite is measurement scaffolding, not library code.
|
|
122
|
+
Metrics/MethodLength:
|
|
123
|
+
Exclude:
|
|
124
|
+
- "spec/benchmarks/**/*"
|
|
125
|
+
|
|
126
|
+
Metrics/AbcSize:
|
|
127
|
+
Exclude:
|
|
128
|
+
- "spec/benchmarks/**/*"
|
|
129
|
+
# Mirrors a production resource: meta computes several version lookups.
|
|
130
|
+
- "spec/dummy/app/resources/assignment_resource.rb"
|
|
131
|
+
|
|
132
|
+
Metrics/ModuleLength:
|
|
133
|
+
Exclude:
|
|
134
|
+
- "spec/benchmarks/**/*"
|
|
135
|
+
|
|
136
|
+
Metrics/CyclomaticComplexity:
|
|
137
|
+
Exclude:
|
|
138
|
+
- "spec/benchmarks/**/*"
|
|
139
|
+
|
|
140
|
+
Metrics/PerceivedComplexity:
|
|
141
|
+
Exclude:
|
|
142
|
+
- "spec/benchmarks/**/*"
|
|
143
|
+
|
|
144
|
+
Style/FormatStringToken:
|
|
145
|
+
Exclude:
|
|
146
|
+
- "spec/benchmarks/**/*"
|
|
147
|
+
|
|
148
|
+
# Benchmark seeds load once per size context; per-example transactions are
|
|
149
|
+
# deliberately off there.
|
|
150
|
+
RSpec/BeforeAfterAll:
|
|
151
|
+
Exclude:
|
|
152
|
+
- "spec/benchmarks/**/*"
|
|
153
|
+
|
|
154
|
+
RSpec/InstanceVariable:
|
|
155
|
+
Exclude:
|
|
156
|
+
- "spec/benchmarks/**/*"
|
|
157
|
+
|
|
158
|
+
# Include-tree constants in the benchmark spec document the production
|
|
159
|
+
# request shapes; they never leak outside the suite run.
|
|
160
|
+
Lint/ConstantDefinitionInBlock:
|
|
161
|
+
Exclude:
|
|
162
|
+
- "spec/benchmarks/**/*"
|
|
163
|
+
|
|
164
|
+
RSpec/LeakyConstantDeclaration:
|
|
165
|
+
Exclude:
|
|
166
|
+
- "spec/benchmarks/**/*"
|
|
109
167
|
|
|
110
168
|
# RSpec - file-specific exclusions
|
|
111
169
|
RSpec/DescribedClass:
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
jpie (3.
|
|
4
|
+
jpie (3.8.2)
|
|
5
5
|
actionpack (~> 8.1, >= 8.1.0)
|
|
6
6
|
pg_query (>= 4)
|
|
7
7
|
prosopite (>= 1)
|
|
@@ -151,6 +151,7 @@ GEM
|
|
|
151
151
|
net-pop
|
|
152
152
|
net-smtp
|
|
153
153
|
marcel (1.1.0)
|
|
154
|
+
memory_profiler (1.1.0)
|
|
154
155
|
mini_mime (1.1.5)
|
|
155
156
|
minitest (5.26.2)
|
|
156
157
|
net-imap (0.5.12)
|
|
@@ -340,6 +341,7 @@ DEPENDENCIES
|
|
|
340
341
|
bundler (~> 2.0)
|
|
341
342
|
jpie!
|
|
342
343
|
json_schemer (~> 2.4)
|
|
344
|
+
memory_profiler (~> 1.1)
|
|
343
345
|
pundit (~> 2.3)
|
|
344
346
|
rake (~> 13.0)
|
|
345
347
|
rspec (~> 3.12)
|