Sha256: 6050609c4d9d5626155e91e6db51a417dec8288726e82c27d0ed07c5e905a46e

Contents?: true

Size: 921 Bytes

Versions: 6

Compression:

Stored size: 921 Bytes

Contents

require_relative "helper"

Post = OpenStruct
User = OpenStruct

class PostSerializer < JsonSerializer
  attribute :id
  attribute :title
  attribute :slug

  def slug
    "#{ object.id }-#{ object.title }"
  end
end

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

class UserSerializer < JsonSerializer
  attribute :id
  attribute :fullname

  def fullname
    object.name + " " + object.lastname
  end
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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
json-serializer-0.0.8 test/attribute.rb
json-serializer-0.0.7 test/attribute.rb
json-serializer-0.0.6 test/attribute.rb
json-serializer-0.0.5 test/attribute.rb
json-serializer-0.0.4 test/attribute.rb
json-serializer-0.0.3 test/attribute.rb