test/fixtures/poro.rb in active_model_serializers-0.9.1 vs test/fixtures/poro.rb in active_model_serializers-0.9.2

- old
+ new

@@ -1,15 +1,13 @@ class Model - def initialize(hash = {}) + def initialize(hash={}) @attributes = hash end def read_attribute_for_serialization(name) if name == :id || name == 'id' object_id - elsif respond_to?(name) - send name else @attributes[name] end end end @@ -22,108 +20,50 @@ def profile @profile ||= Profile.new(name: 'N1', description: 'D1') end end -class UserInfo < Model - def user - @user ||= User.new(name: 'N1', email: 'E1') - end -end - class Profile < Model end -class Category < Model - def posts - @posts ||= [Post.new(title: 'T1', body: 'B1'), - Post.new(title: 'T2', body: 'B2')] - end -end - class Post < Model def comments @comments ||= [Comment.new(content: 'C1'), Comment.new(content: 'C2')] end end -class SpecialPost < Post - def special_comment - @speical_comment ||= Comment.new(content: 'special') - end -end - class Comment < Model end class WebLog < Model end -class Interview < Model - def attachment - @attachment ||= Image.new(url: 'U1') - end -end - -class Mail < Model - def attachments - @attachments ||= [Image.new(url: 'U1'), - Video.new(html: 'H1')] - end -end - -class Image < Model -end - -class Video < Model -end - ### ## Serializers ### class UserSerializer < ActiveModel::Serializer attributes :name, :email has_one :profile end -class UserInfoSerializer < ActiveModel::Serializer - has_one :user -end - class ProfileSerializer < ActiveModel::Serializer def description description = object.read_attribute_for_serialization(:description) scope ? "#{description} - #{scope}" : description end attributes :name, :description end -class DifferentProfileSerializer < ActiveModel::Serializer - attributes :name -end - -class CategorySerializer < ActiveModel::Serializer - attributes :name - - has_many :posts -end - class PostSerializer < ActiveModel::Serializer attributes :title, :body has_many :comments end -class SpecialPostSerializer < ActiveModel::Serializer - attributes :title, :body - has_many :comments, root: :comments, embed_in_root: true, embed: :ids - has_one :special_comment, root: :comments, embed_in_root: true, embed: :ids -end - class CommentSerializer < ActiveModel::Serializer attributes :content end class WebLogSerializer < ActiveModel::Serializer @@ -131,54 +71,5 @@ end class WebLogLowerCamelSerializer < WebLogSerializer format_keys :lower_camel end - -class InterviewSerializer < ActiveModel::Serializer - attributes :text - - has_one :attachment, polymorphic: true -end - -class MailSerializer < ActiveModel::Serializer - attributes :body - - has_many :attachments, polymorphic: true -end - -class ImageSerializer < ActiveModel::Serializer - attributes :url -end - -class VideoSerializer < ActiveModel::Serializer - attributes :html -end - -class ShortProfileSerializer < ::ProfileSerializer; end - -module TestNamespace - class ProfileSerializer < ::ProfileSerializer; end - class UserSerializer < ::UserSerializer; end -end - -ActiveModel::Serializer.setup do |config| - config.default_key_type = :name -end - -class NameKeyUserSerializer < ActiveModel::Serializer - attributes :name, :email - - has_one :profile -end - -class NameKeyPostSerializer < ActiveModel::Serializer - attributes :title, :body - - has_many :comments -end - -ActiveModel::Serializer.setup do |config| - config.default_key_type = nil -end - -