class FunWithJsonAPi::ActiveModelSerializers::DeserializerConfigBuilder
Builds an options hash for ActiveModelSerializers::Deserialization.jsonapi_parse
Attributes
deserializer[R]
Public Class Methods
build(deserializer)
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 5 def self.build(deserializer) new(deserializer).build end
new(deserializer)
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 13 def initialize(deserializer) @deserializer = deserializer end
Public Instance Methods
build()
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 17 def build { only: build_only_values, keys: build_keys_value } end
Protected Instance Methods
build_keys_value()
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 31 def build_keys_value Hash[ attribute_key_values(deserializer.attributes) + attribute_key_values(deserializer.relationships) ] end
build_only_values()
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 26 def build_only_values attribute_only_values(deserializer.attributes) + attribute_only_values(deserializer.relationships) end
Private Instance Methods
attribute_key_values(attributes_or_relationships)
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 44 def attribute_key_values(attributes_or_relationships) attributes_or_relationships.select { |a| a.name != a.as } .map { |a| [a.name, a.as] } end
attribute_only_values(attributes_or_relationships)
click to toggle source
# File lib/fun_with_json_api/active_model_serializers/deserializer_config_builder.rb, line 40 def attribute_only_values(attributes_or_relationships) attributes_or_relationships.map(&:name) end