Sha256: ff06011304edb54bd3f7ad629219f442a94b4f10fc38e3c871e5b5d27c2e1ebb
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
module RESTFramework class BaseSerializer attr_reader :errors def initialize(object: nil, data: nil, controller: nil, **kwargs) @object = object @data = data @controller = controller end def is_valid return true end end # This serializer uses `.as_json` to serialize objects. Despite the name, `.as_json` is a Rails # method which converts objects to Ruby primitives (with the top-level being either an array or a # hash). class NativeModelSerializer < BaseSerializer def initialize(model: nil, **kwargs) super(**kwargs) @model = model || @controller.send(:get_model) end # Get a configuration passable to `as_json` for the model. def get_native_serializer_config fields = @controller.send(:get_fields) unless fields.blank? columns, methods = fields.partition { |f| f.to_s.in?(@model.column_names) } return {only: columns, methods: methods} end return {} end # Convert the object(s) to Ruby primitives. def serialize return @object.as_json(self.get_native_serializer_config) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rest_framework-0.0.8 | lib/rest_framework/serializers.rb |