Sha256: 61fad1299c1ee63d979bef3a8b0d5039fcd5d8921883ca4d9efdcf0bf0c1f10b
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
class Model def initialize(hash={}) @attributes = hash end def read_attribute_for_serialization(name) if name == :id || name == 'id' object_id else @attributes[name] end end end ### ## Models ### class User < Model def profile @profile ||= Profile.new(name: 'N1', description: 'D1') end end class Profile < Model end class Post < Model def comments @comments ||= [Comment.new(content: 'C1'), Comment.new(content: 'C2')] end end class Comment < Model end class WebLog < Model end ### ## Serializers ### class UserSerializer < ActiveModel::Serializer attributes :name, :email has_one :profile end class ProfileSerializer < ActiveModel::Serializer def description description = object.read_attribute_for_serialization(:description) scope ? "#{description} - #{scope}" : description end attributes :name, :description end class PostSerializer < ActiveModel::Serializer attributes :title, :body has_many :comments end class CommentSerializer < ActiveModel::Serializer attributes :content end class WebLogSerializer < ActiveModel::Serializer attributes :name, :display_name end class WebLogLowerCamelSerializer < WebLogSerializer format_keys :lower_camel end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-0.9.2 | test/fixtures/poro.rb |
active_model_serializers-0.9.0 | test/fixtures/poro.rb |