jsonapi-resources 0.10.4 → 0.10.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jsonapi/active_relation/join_manager.rb +8 -2
- data/lib/jsonapi/active_relation_resource.rb +56 -22
- data/lib/jsonapi/basic_resource.rb +3 -3
- data/lib/jsonapi/cached_response_fragment.rb +2 -2
- data/lib/jsonapi/configuration.rb +9 -1
- data/lib/jsonapi/paginator.rb +17 -0
- data/lib/jsonapi/path_segment.rb +2 -2
- data/lib/jsonapi/processor.rb +15 -7
- data/lib/jsonapi/relationship.rb +11 -2
- data/lib/jsonapi/resources/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d30a2ea26f6bb9f907e0710a7e9d95a9682bfa64ab0fd7ae1e5b350c07f52924
|
4
|
+
data.tar.gz: fd883de5a6506f4aaad03fcf3ec61ec311c0e57f0cf33ea8c3d8b082c47b2671
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc53b7071fb93b2f2f5c8ff2f02b43572a56d5da8a58835cff73953100db55c0ea9dbc2a1d26b7b06ae854d8e588276619d7631a4dc509e7c6332b9ced5c6245
|
7
|
+
data.tar.gz: d9f77c39f058f3978b20ccba5d2beea4744bbda9cb1b19933ed9a3a235a5265a9fecb945a2fd3646f0135cb97059896be3ac2fa19023a94fd555480ac8483f95
|
@@ -147,9 +147,15 @@ module JSONAPI
|
|
147
147
|
related_resource_klass = join_details[:related_resource_klass]
|
148
148
|
join_type = relationship_details[:join_type]
|
149
149
|
|
150
|
+
join_options = {
|
151
|
+
relationship: relationship,
|
152
|
+
relationship_details: relationship_details,
|
153
|
+
related_resource_klass: related_resource_klass,
|
154
|
+
}
|
155
|
+
|
150
156
|
if relationship == :root
|
151
157
|
unless source_relationship
|
152
|
-
add_join_details('', {alias: resource_klass._table_name, join_type: :root})
|
158
|
+
add_join_details('', {alias: resource_klass._table_name, join_type: :root, join_options: join_options})
|
153
159
|
end
|
154
160
|
next
|
155
161
|
end
|
@@ -163,7 +169,7 @@ module JSONAPI
|
|
163
169
|
options: options)
|
164
170
|
}
|
165
171
|
|
166
|
-
details = {alias: self.class.alias_from_arel_node(join_node), join_type: join_type}
|
172
|
+
details = {alias: self.class.alias_from_arel_node(join_node), join_type: join_type, join_options: join_options}
|
167
173
|
|
168
174
|
if relationship == source_relationship
|
169
175
|
if relationship.polymorphic? && relationship.belongs_to?
|
@@ -114,11 +114,11 @@ module JSONAPI
|
|
114
114
|
# This alias is going to be resolve down to the model's table name and will not actually be an alias
|
115
115
|
resource_table_alias = resource_klass._table_name
|
116
116
|
|
117
|
-
pluck_fields = [
|
117
|
+
pluck_fields = [sql_field_with_alias(resource_table_alias, resource_klass._primary_key)]
|
118
118
|
|
119
119
|
cache_field = attribute_to_model_field(:_cache_field) if options[:cache]
|
120
120
|
if cache_field
|
121
|
-
pluck_fields <<
|
121
|
+
pluck_fields << sql_field_with_alias(resource_table_alias, cache_field[:name])
|
122
122
|
end
|
123
123
|
|
124
124
|
linkage_fields = []
|
@@ -133,7 +133,7 @@ module JSONAPI
|
|
133
133
|
|
134
134
|
linkage_table_alias = join_manager.join_details_by_polymorphic_relationship(linkage_relationship, resource_type)[:alias]
|
135
135
|
primary_key = klass._primary_key
|
136
|
-
pluck_fields <<
|
136
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
137
137
|
end
|
138
138
|
else
|
139
139
|
klass = linkage_relationship.resource_klass
|
@@ -141,7 +141,7 @@ module JSONAPI
|
|
141
141
|
|
142
142
|
linkage_table_alias = join_manager.join_details_by_relationship(linkage_relationship)[:alias]
|
143
143
|
primary_key = klass._primary_key
|
144
|
-
pluck_fields <<
|
144
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
@@ -150,7 +150,7 @@ module JSONAPI
|
|
150
150
|
attributes.try(:each) do |attribute|
|
151
151
|
model_field = resource_klass.attribute_to_model_field(attribute)
|
152
152
|
model_fields[attribute] = model_field
|
153
|
-
pluck_fields <<
|
153
|
+
pluck_fields << sql_field_with_alias(resource_table_alias, model_field[:name])
|
154
154
|
end
|
155
155
|
|
156
156
|
sort_fields = options.dig(:_relation_helper_options, :sort_fields)
|
@@ -324,6 +324,11 @@ module JSONAPI
|
|
324
324
|
records = records.joins_left(relation_name)
|
325
325
|
end
|
326
326
|
end
|
327
|
+
|
328
|
+
if relationship.use_related_resource_records_for_joins
|
329
|
+
records = records.merge(self.records(options))
|
330
|
+
end
|
331
|
+
|
327
332
|
records
|
328
333
|
end
|
329
334
|
|
@@ -409,13 +414,13 @@ module JSONAPI
|
|
409
414
|
resource_table_alias = join_manager.join_details_by_relationship(relationship)[:alias]
|
410
415
|
|
411
416
|
pluck_fields = [
|
412
|
-
|
413
|
-
|
417
|
+
Arel.sql("#{_table_name}.#{_primary_key} AS \"source_id\""),
|
418
|
+
sql_field_with_alias(resource_table_alias, resource_klass._primary_key)
|
414
419
|
]
|
415
420
|
|
416
421
|
cache_field = resource_klass.attribute_to_model_field(:_cache_field) if options[:cache]
|
417
422
|
if cache_field
|
418
|
-
pluck_fields <<
|
423
|
+
pluck_fields << sql_field_with_alias(resource_table_alias, cache_field[:name])
|
419
424
|
end
|
420
425
|
|
421
426
|
linkage_fields = []
|
@@ -430,7 +435,7 @@ module JSONAPI
|
|
430
435
|
|
431
436
|
linkage_table_alias = join_manager.join_details_by_polymorphic_relationship(linkage_relationship, resource_type)[:alias]
|
432
437
|
primary_key = klass._primary_key
|
433
|
-
pluck_fields <<
|
438
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
434
439
|
end
|
435
440
|
else
|
436
441
|
klass = linkage_relationship.resource_klass
|
@@ -438,7 +443,7 @@ module JSONAPI
|
|
438
443
|
|
439
444
|
linkage_table_alias = join_manager.join_details_by_relationship(linkage_relationship)[:alias]
|
440
445
|
primary_key = klass._primary_key
|
441
|
-
pluck_fields <<
|
446
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
442
447
|
end
|
443
448
|
end
|
444
449
|
|
@@ -447,7 +452,7 @@ module JSONAPI
|
|
447
452
|
attributes.try(:each) do |attribute|
|
448
453
|
model_field = resource_klass.attribute_to_model_field(attribute)
|
449
454
|
model_fields[attribute] = model_field
|
450
|
-
pluck_fields <<
|
455
|
+
pluck_fields << sql_field_with_alias(resource_table_alias, model_field[:name])
|
451
456
|
end
|
452
457
|
|
453
458
|
sort_fields = options.dig(:_relation_helper_options, :sort_fields)
|
@@ -543,9 +548,9 @@ module JSONAPI
|
|
543
548
|
related_type = concat_table_field(_table_name, relationship.polymorphic_type)
|
544
549
|
|
545
550
|
pluck_fields = [
|
546
|
-
Arel.sql("#{primary_key} AS #{_table_name
|
547
|
-
Arel.sql("#{related_key} AS #{_table_name
|
548
|
-
Arel.sql("#{related_type} AS #{_table_name
|
551
|
+
Arel.sql("#{primary_key} AS #{alias_table_field(_table_name, _primary_key)}"),
|
552
|
+
Arel.sql("#{related_key} AS #{alias_table_field(_table_name, relationship.foreign_key)}"),
|
553
|
+
Arel.sql("#{related_type} AS #{alias_table_field(_table_name, relationship.polymorphic_type)}")
|
549
554
|
]
|
550
555
|
|
551
556
|
# Get the additional fields from each relation. There's a limitation that the fields must exist in each relation
|
@@ -570,7 +575,7 @@ module JSONAPI
|
|
570
575
|
|
571
576
|
cache_offset = relation_index
|
572
577
|
if cache_field
|
573
|
-
pluck_fields <<
|
578
|
+
pluck_fields << sql_field_with_alias(table_alias, cache_field[:name])
|
574
579
|
relation_index+= 1
|
575
580
|
end
|
576
581
|
|
@@ -579,7 +584,7 @@ module JSONAPI
|
|
579
584
|
attributes.try(:each) do |attribute|
|
580
585
|
model_field = related_klass.attribute_to_model_field(attribute)
|
581
586
|
model_fields[attribute] = model_field
|
582
|
-
pluck_fields <<
|
587
|
+
pluck_fields << sql_field_with_alias(table_alias, model_field[:name])
|
583
588
|
relation_index+= 1
|
584
589
|
end
|
585
590
|
|
@@ -616,7 +621,7 @@ module JSONAPI
|
|
616
621
|
|
617
622
|
linkage_table_alias = join_manager.join_details_by_polymorphic_relationship(linkage_relationship, resource_type)[:alias]
|
618
623
|
primary_key = klass._primary_key
|
619
|
-
pluck_fields <<
|
624
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
620
625
|
end
|
621
626
|
else
|
622
627
|
klass = linkage_relationship.resource_klass
|
@@ -624,7 +629,7 @@ module JSONAPI
|
|
624
629
|
|
625
630
|
linkage_table_alias = join_manager.join_details_by_relationship(linkage_relationship)[:alias]
|
626
631
|
primary_key = klass._primary_key
|
627
|
-
pluck_fields <<
|
632
|
+
pluck_fields << sql_field_with_alias(linkage_table_alias, primary_key)
|
628
633
|
end
|
629
634
|
end
|
630
635
|
|
@@ -649,7 +654,7 @@ module JSONAPI
|
|
649
654
|
end
|
650
655
|
end
|
651
656
|
|
652
|
-
relation_position = relation_positions[row[2].
|
657
|
+
relation_position = relation_positions[row[2].underscore.pluralize]
|
653
658
|
model_fields = relation_position[:model_fields]
|
654
659
|
cache_field = relation_position[:cache_field]
|
655
660
|
cache_offset = relation_position[:cache_offset]
|
@@ -790,7 +795,31 @@ module JSONAPI
|
|
790
795
|
if table.blank? || field.to_s.include?('.')
|
791
796
|
# :nocov:
|
792
797
|
if quoted
|
793
|
-
|
798
|
+
quote(field)
|
799
|
+
else
|
800
|
+
field.to_s
|
801
|
+
end
|
802
|
+
# :nocov:
|
803
|
+
else
|
804
|
+
if quoted
|
805
|
+
"#{quote(table)}.#{quote(field)}"
|
806
|
+
else
|
807
|
+
# :nocov:
|
808
|
+
"#{table.to_s}.#{field.to_s}"
|
809
|
+
# :nocov:
|
810
|
+
end
|
811
|
+
end
|
812
|
+
end
|
813
|
+
|
814
|
+
def sql_field_with_alias(table, field, quoted = true)
|
815
|
+
Arel.sql("#{concat_table_field(table, field, quoted)} AS #{alias_table_field(table, field, quoted)}")
|
816
|
+
end
|
817
|
+
|
818
|
+
def alias_table_field(table, field, quoted = false)
|
819
|
+
if table.blank? || field.to_s.include?('.')
|
820
|
+
# :nocov:
|
821
|
+
if quoted
|
822
|
+
quote(field)
|
794
823
|
else
|
795
824
|
field.to_s
|
796
825
|
end
|
@@ -798,14 +827,19 @@ module JSONAPI
|
|
798
827
|
else
|
799
828
|
if quoted
|
800
829
|
# :nocov:
|
801
|
-
"
|
830
|
+
quote("#{table.to_s}_#{field.to_s}")
|
802
831
|
# :nocov:
|
803
832
|
else
|
804
|
-
"#{table.to_s}
|
833
|
+
"#{table.to_s}_#{field.to_s}"
|
805
834
|
end
|
806
835
|
end
|
807
836
|
end
|
808
837
|
|
838
|
+
def quote(field)
|
839
|
+
"\"#{field.to_s}\""
|
840
|
+
end
|
841
|
+
|
842
|
+
|
809
843
|
def apply_filters(records, filters, options = {})
|
810
844
|
if filters
|
811
845
|
filters.each do |filter, value|
|
@@ -873,7 +873,7 @@ module JSONAPI
|
|
873
873
|
if !_polymorphic
|
874
874
|
''
|
875
875
|
else
|
876
|
-
@_polymorphic_name ||= _model_name.to_s.
|
876
|
+
@_polymorphic_name ||= _model_name.to_s.underscore
|
877
877
|
end
|
878
878
|
end
|
879
879
|
|
@@ -927,7 +927,7 @@ module JSONAPI
|
|
927
927
|
next unless Module === klass
|
928
928
|
if klass < ActiveRecord::Base
|
929
929
|
klass.reflect_on_all_associations(:has_many).select{|r| r.options[:as] }.each do |reflection|
|
930
|
-
(hash[reflection.options[:as]] ||= []) << klass.name.
|
930
|
+
(hash[reflection.options[:as]] ||= []) << klass.name.underscore
|
931
931
|
end
|
932
932
|
end
|
933
933
|
end
|
@@ -1058,7 +1058,7 @@ module JSONAPI
|
|
1058
1058
|
end
|
1059
1059
|
|
1060
1060
|
def construct_order_options(sort_params)
|
1061
|
-
sort_params
|
1061
|
+
sort_params = default_sort if sort_params.blank?
|
1062
1062
|
|
1063
1063
|
return {} unless sort_params
|
1064
1064
|
|
@@ -51,8 +51,8 @@ module JSONAPI
|
|
51
51
|
@fetchable_fields = Set.new(fetchable_fields)
|
52
52
|
|
53
53
|
# Relationships left uncompiled because we'll often want to insert included ids on retrieval
|
54
|
-
|
55
|
-
|
54
|
+
# Remove the data since that should not be cached
|
55
|
+
@relationships = relationships&.transform_values {|v| v.delete_if {|k, _v| k == 'data'} }
|
56
56
|
@links_json = CompiledJson.of(links_json)
|
57
57
|
@attributes_json = CompiledJson.of(attributes_json)
|
58
58
|
@meta_json = CompiledJson.of(meta_json)
|
@@ -39,7 +39,8 @@ module JSONAPI
|
|
39
39
|
:default_resource_cache_field,
|
40
40
|
:resource_cache_digest_function,
|
41
41
|
:resource_cache_usage_report_function,
|
42
|
-
:default_exclude_links
|
42
|
+
:default_exclude_links,
|
43
|
+
:use_related_resource_records_for_joins
|
43
44
|
|
44
45
|
def initialize
|
45
46
|
#:underscored_key, :camelized_key, :dasherized_key, or custom
|
@@ -158,6 +159,11 @@ module JSONAPI
|
|
158
159
|
# and relationships. Accepts either `:default`, `:none`, or array containing the
|
159
160
|
# specific default links to exclude, which may be `:self` and `:related`.
|
160
161
|
self.default_exclude_links = :none
|
162
|
+
|
163
|
+
# Use a related resource's `records` when performing joins. This setting allows included resources to account for
|
164
|
+
# permission scopes. It can be overridden explicitly per relationship. Furthermore, specifying a `relation_name`
|
165
|
+
# on a relationship will cause this setting to be ignored.
|
166
|
+
self.use_related_resource_records_for_joins = true
|
161
167
|
end
|
162
168
|
|
163
169
|
def cache_formatters=(bool)
|
@@ -299,6 +305,8 @@ module JSONAPI
|
|
299
305
|
attr_writer :resource_cache_usage_report_function
|
300
306
|
|
301
307
|
attr_writer :default_exclude_links
|
308
|
+
|
309
|
+
attr_writer :use_related_resource_records_for_joins
|
302
310
|
end
|
303
311
|
|
304
312
|
class << self
|
data/lib/jsonapi/paginator.rb
CHANGED
@@ -13,9 +13,16 @@ module JSONAPI
|
|
13
13
|
# :nocov:
|
14
14
|
end
|
15
15
|
|
16
|
+
def requires_record_count
|
17
|
+
# :nocov:
|
18
|
+
self.class.requires_record_count
|
19
|
+
# :nocov:
|
20
|
+
end
|
21
|
+
|
16
22
|
class << self
|
17
23
|
def requires_record_count
|
18
24
|
# :nocov:
|
25
|
+
# @deprecated
|
19
26
|
false
|
20
27
|
# :nocov:
|
21
28
|
end
|
@@ -36,10 +43,15 @@ class OffsetPaginator < JSONAPI::Paginator
|
|
36
43
|
verify_pagination_params
|
37
44
|
end
|
38
45
|
|
46
|
+
# @deprecated
|
39
47
|
def self.requires_record_count
|
40
48
|
true
|
41
49
|
end
|
42
50
|
|
51
|
+
def requires_record_count
|
52
|
+
true
|
53
|
+
end
|
54
|
+
|
43
55
|
def apply(relation, _order_options)
|
44
56
|
relation.offset(@offset).limit(@limit)
|
45
57
|
end
|
@@ -127,10 +139,15 @@ class PagedPaginator < JSONAPI::Paginator
|
|
127
139
|
verify_pagination_params
|
128
140
|
end
|
129
141
|
|
142
|
+
# @deprecated
|
130
143
|
def self.requires_record_count
|
131
144
|
true
|
132
145
|
end
|
133
146
|
|
147
|
+
def requires_record_count
|
148
|
+
true
|
149
|
+
end
|
150
|
+
|
134
151
|
def calculate_page_count(record_count)
|
135
152
|
(record_count / @size.to_f).ceil
|
136
153
|
end
|
data/lib/jsonapi/path_segment.rb
CHANGED
@@ -30,7 +30,7 @@ module JSONAPI
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def eql?(other)
|
33
|
-
relationship == other.relationship && resource_klass == other.resource_klass
|
33
|
+
other.is_a?(JSONAPI::PathSegment::Relationship) && relationship == other.relationship && resource_klass == other.resource_klass
|
34
34
|
end
|
35
35
|
|
36
36
|
def hash
|
@@ -59,7 +59,7 @@ module JSONAPI
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def eql?(other)
|
62
|
-
field_name == other.field_name && resource_klass == other.resource_klass
|
62
|
+
other.is_a?(JSONAPI::PathSegment::Field) && field_name == other.field_name && resource_klass == other.resource_klass
|
63
63
|
end
|
64
64
|
|
65
65
|
def delegated_field_name
|
data/lib/jsonapi/processor.rb
CHANGED
@@ -65,13 +65,13 @@ module JSONAPI
|
|
65
65
|
resource_set.populate!(serializer, context, find_options)
|
66
66
|
|
67
67
|
page_options = result_options
|
68
|
-
if (
|
68
|
+
if (top_level_meta_include_record_count || (paginator && paginator.requires_record_count))
|
69
69
|
page_options[:record_count] = resource_klass.count(verified_filters,
|
70
70
|
context: context,
|
71
71
|
include_directives: include_directives)
|
72
72
|
end
|
73
73
|
|
74
|
-
if (
|
74
|
+
if (top_level_meta_include_page_count && paginator && page_options[:record_count])
|
75
75
|
page_options[:page_count] = paginator ? paginator.calculate_page_count(page_options[:record_count]) : 1
|
76
76
|
end
|
77
77
|
|
@@ -197,9 +197,9 @@ module JSONAPI
|
|
197
197
|
resource_set.populate!(serializer, context, find_options)
|
198
198
|
|
199
199
|
opts = result_options
|
200
|
-
if ((
|
201
|
-
(paginator && paginator.
|
202
|
-
(
|
200
|
+
if ((top_level_meta_include_record_count) ||
|
201
|
+
(paginator && paginator.requires_record_count) ||
|
202
|
+
(top_level_meta_include_page_count))
|
203
203
|
|
204
204
|
opts[:record_count] = source_resource.class.count_related(
|
205
205
|
source_resource.identity,
|
@@ -207,13 +207,13 @@ module JSONAPI
|
|
207
207
|
find_options)
|
208
208
|
end
|
209
209
|
|
210
|
-
if (
|
210
|
+
if (top_level_meta_include_page_count && opts[:record_count])
|
211
211
|
opts[:page_count] = paginator.calculate_page_count(opts[:record_count])
|
212
212
|
end
|
213
213
|
|
214
214
|
opts[:pagination_params] = if paginator && JSONAPI.configuration.top_level_links_include_pagination
|
215
215
|
page_options = {}
|
216
|
-
page_options[:record_count] = opts[:record_count] if paginator.
|
216
|
+
page_options[:record_count] = opts[:record_count] if paginator.requires_record_count
|
217
217
|
paginator.links_page_params(page_options.merge(fetched_resources: resource_set))
|
218
218
|
else
|
219
219
|
{}
|
@@ -382,6 +382,14 @@ module JSONAPI
|
|
382
382
|
JSONAPI::ResourceSet.new(resource_id_tree)
|
383
383
|
end
|
384
384
|
|
385
|
+
def top_level_meta_include_record_count
|
386
|
+
JSONAPI.configuration.top_level_meta_include_record_count
|
387
|
+
end
|
388
|
+
|
389
|
+
def top_level_meta_include_page_count
|
390
|
+
JSONAPI.configuration.top_level_meta_include_page_count
|
391
|
+
end
|
392
|
+
|
385
393
|
private
|
386
394
|
def find_related_resource_id_tree(resource_klass, source_id, relationship_name, find_options, include_related)
|
387
395
|
options = find_options.except(:include_directives)
|
data/lib/jsonapi/relationship.rb
CHANGED
@@ -3,7 +3,7 @@ module JSONAPI
|
|
3
3
|
attr_reader :acts_as_set, :foreign_key, :options, :name,
|
4
4
|
:class_name, :polymorphic, :always_include_optional_linkage_data,
|
5
5
|
:parent_resource, :eager_load_on_include, :custom_methods,
|
6
|
-
:inverse_relationship, :allow_include
|
6
|
+
:inverse_relationship, :allow_include, :use_related_resource_records_for_joins
|
7
7
|
|
8
8
|
attr_writer :allow_include
|
9
9
|
|
@@ -23,6 +23,15 @@ module JSONAPI
|
|
23
23
|
@polymorphic_types ||= options[:polymorphic_relations]
|
24
24
|
end
|
25
25
|
|
26
|
+
use_related_resource_records_for_joins_default = if options[:relation_name]
|
27
|
+
false
|
28
|
+
else
|
29
|
+
JSONAPI.configuration.use_related_resource_records_for_joins
|
30
|
+
end
|
31
|
+
|
32
|
+
@use_related_resource_records_for_joins = options.fetch(:use_related_resource_records_for_joins,
|
33
|
+
use_related_resource_records_for_joins_default) == true
|
34
|
+
|
26
35
|
@always_include_optional_linkage_data = options.fetch(:always_include_optional_linkage_data, false) == true
|
27
36
|
@eager_load_on_include = options.fetch(:eager_load_on_include, false) == true
|
28
37
|
@allow_include = options[:allow_include]
|
@@ -63,7 +72,7 @@ module JSONAPI
|
|
63
72
|
next unless Module === klass
|
64
73
|
if ActiveRecord::Base > klass
|
65
74
|
klass.reflect_on_all_associations(:has_many).select{|r| r.options[:as] }.each do |reflection|
|
66
|
-
(hash[reflection.options[:as]] ||= []) << klass.name.
|
75
|
+
(hash[reflection.options[:as]] ||= []) << klass.name.underscore
|
67
76
|
end
|
68
77
|
end
|
69
78
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonapi-resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Gebhardt
|
8
8
|
- Larry Gebhardt
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -232,7 +232,7 @@ homepage: https://github.com/cerebris/jsonapi-resources
|
|
232
232
|
licenses:
|
233
233
|
- MIT
|
234
234
|
metadata: {}
|
235
|
-
post_install_message:
|
235
|
+
post_install_message:
|
236
236
|
rdoc_options: []
|
237
237
|
require_paths:
|
238
238
|
- lib
|
@@ -247,8 +247,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
247
|
- !ruby/object:Gem::Version
|
248
248
|
version: '0'
|
249
249
|
requirements: []
|
250
|
-
rubygems_version: 3.
|
251
|
-
signing_key:
|
250
|
+
rubygems_version: 3.1.6
|
251
|
+
signing_key:
|
252
252
|
specification_version: 4
|
253
253
|
summary: Easily support JSON API in Rails.
|
254
254
|
test_files: []
|