Merge branch 'lserman-master'

Followup needed:
- Update code comments https://github.com/rails-api/active_model_serializers/pull/1622#discussion_r57750471
- Move test class into test scope https://github.com/rails-api/active_model_serializers/pull/1622#discussion_r57659150
This commit is contained in:
Benjamin Fleischer
2016-03-29 21:40:58 -05:00
3 changed files with 27 additions and 9 deletions

View File

@@ -15,7 +15,7 @@ module ActiveModelSerializers
object = serializer.object
# It will split the serializer into two, one that will be cached and one that will not
serializers = fragment_serializer(object.class.name)
serializers = fragment_serializer
# Get serializable hash from both
cached_hash = serialize(object, serializers[:cached])
@@ -76,13 +76,15 @@ module ActiveModelSerializers
# @example
# When +name+ is <tt>User::Admin</tt>
# creates the Serializer classes (if they don't exist).
# User_AdminCachedSerializer
# User_AdminNonCachedSerializer
# CachedUser_AdminSerializer
# NonCachedUser_AdminSerializer
#
def fragment_serializer(name)
klass = serializer.class
cached = "#{to_valid_const_name(name)}CachedSerializer"
non_cached = "#{to_valid_const_name(name)}NonCachedSerializer"
def fragment_serializer
klass = serializer.class
serializer_class_name = to_valid_const_name(klass.name)
cached = "Cached#{serializer_class_name}"
non_cached = "NonCached#{serializer_class_name}"
cached_serializer = get_or_create_serializer(cached)
non_cached_serializer = get_or_create_serializer(non_cached)