rails_json_serializer 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/serializer/concern.rb +35 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87d8f10823e559a993218286bc85c0598e077f59e10a23ce0694f3cd41645100
|
4
|
+
data.tar.gz: 8b3983a64085b1a7d2e75cfaf10455c93387059cf5e0adb9cd5fec1f19ce2c3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0dc86ef87ab82c921885e043c831c07f5e8d47ad3d497316c647522016e2497c07891c7a4b9d52f3b215b091e0c6f7872023365f6480ec0321242d4374a0d17
|
7
|
+
data.tar.gz: 2aae2a124dad83d9c04d3088a5539a43f4e47f1b96d3239b9ca755e629a3dad8e9ced58f7c85e2f549c4b94f0d5be2781c751803a8a98b8a83094d75b4013f16
|
data/lib/serializer/concern.rb
CHANGED
@@ -112,19 +112,32 @@ module Serializer
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
end
|
115
|
+
if serializer_query_names.any?
|
116
|
+
# Inject instance methods
|
117
|
+
subclass.send(:include, serializer_klass::SerializerClassAndInstanceMethods)
|
118
|
+
# Inject class methods
|
119
|
+
subclass.send(:extend, serializer_klass::SerializerClassAndInstanceMethods)
|
120
|
+
# Inject class methods that has queries
|
121
|
+
if Serializer.configuration.debug
|
122
|
+
Rails.logger.info "Injecting queries: #{serializer_klass.public_instance_methods} into class: #{subclass}"
|
123
|
+
end
|
124
|
+
puts "Injecting queries: #{serializer_klass.public_instance_methods} into class: #{subclass}"
|
125
|
+
subclass.send(:extend, serializer_klass)
|
126
|
+
# Injecting the Serializer Methods as a namespaced class of the rails class, so we can have
|
127
|
+
# access to the list of methods to clear their cache.
|
128
|
+
# 'Class Name + Serializer' does not work with inheritence.
|
129
|
+
subclass.const_set('SERIALIZER_QUERY_KEYS_CACHE', serializer_query_names)
|
130
|
+
# Inject class methods
|
131
|
+
subclass.send(:extend, serializer_klass::SerializerClassMethods)
|
115
132
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
# 'Class Name + Serializer' does not work with inheritence.
|
125
|
-
subclass.const_set('SERIALIZER_QUERY_KEYS_CACHE', serializer_query_names)
|
126
|
-
# Inject class methods
|
127
|
-
subclass.send(:extend, serializer_klass::SerializerClassMethods)
|
133
|
+
# Issue with inheritting classes caching the serializer data from queries in super classes.
|
134
|
+
# Only on the rails server, not the console strangely.
|
135
|
+
serializer_query_names.each do |query_name|
|
136
|
+
cache_key_prefix = /#{subclass.name}_____#{query_name}___(\d+)/
|
137
|
+
puts "Deleting cache here: Rails.cache.delete_matched(#{cache_key_prefix})"
|
138
|
+
Rails.cache.delete_matched(cache_key_prefix)
|
139
|
+
end
|
140
|
+
end
|
128
141
|
else
|
129
142
|
Rails.logger.info "Serializer: #{serializer_klass.name} was not a Module as expected" if Serializer.configuration.debug
|
130
143
|
end
|
@@ -132,6 +145,16 @@ module Serializer
|
|
132
145
|
super(subclass)
|
133
146
|
end
|
134
147
|
|
148
|
+
# Class defined clear serializer
|
149
|
+
def clear_serializer_cache
|
150
|
+
self.get_cumulatively_inherited_serializer_query_list.each do |query_name|
|
151
|
+
cache_key_prefix = /#{self.name}_____#{query_name}___(\d+)/
|
152
|
+
Rails.logger.info "Serializer: CLEARING CACHE KEY Prefix: #{cache_key_prefix}" if Serializer.configuration.debug
|
153
|
+
Rails.cache.delete_matched(cache_key_prefix)
|
154
|
+
end
|
155
|
+
return true
|
156
|
+
end
|
157
|
+
|
135
158
|
# Can override the query, using the options. ex: {json_query_override: :tiny_children_serializer_query}
|
136
159
|
def serializer opts = {}
|
137
160
|
query = opts[:json_query_override].present? ? self.send(opts[:json_query_override], opts) : serializer_query(opts)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_json_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- benjamin.dana.software.dev@gmail.com
|
@@ -11,7 +11,7 @@ cert_chain: []
|
|
11
11
|
date: 2020-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|