Sha256: 68cbff6cce968e5d4b91331220c72b707e8596cf39597cb6a5d1d404e30f329d
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true require_relative "helper" class PostSerializer < JsonSerializer attribute :id attribute :title attribute :slug def slug "#{ object.id }-#{ object.title }" end end class ParentSerializer < JsonSerializer attribute :parent end class ChildSerializer < ParentSerializer attribute :child end class UserSerializer < JsonSerializer attribute :id attribute :fullname def fullname object.name + " " + object.lastname end end class AttributeTest < Minitest::Test test "converts defined attributes into json" do post = Post.new(id: 1, title: "tsunami") result = { id: 1, title: "tsunami", slug: "1-tsunami" }.to_json assert_equal result, PostSerializer.new(post).to_json end test "serializes array" do users = [ User.new(id: 1, name: "sonny", lastname: "moore"), User.new(id: 2, name: "anton", lastname: "zaslavski") ] result = [ { id: 1, fullname: "sonny moore" }, { id: 2, fullname: "anton zaslavski" } ].to_json assert_equal result, UserSerializer.new(users).to_json end test "inheritance" do parent = ParentSerializer.attributes child = ChildSerializer.attributes assert_equal(parent.merge(child: nil), child) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
json-serializer-1.0.0 | test/attribute_test.rb |