Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 1.96 KB

README.ja.md

File metadata and controls

66 lines (45 loc) · 1.96 KB

Pb::Serializer

Pb::Serializer はRuby オブジェクトの Protocol Buffers シリアライザです。

English version

Features

Usage

以下のような Protocol Buffers のメッセージ定義および ActiveRecord モデルを例にします。

syntax = "proto3";

package example;

option ruby_package = "ExamplesPb";

message User {
  uint64 id = 1;
  string name = 2;
}
# Schema: [id(integer), name(string)]
class User < ActiveRecord::Base
end

.proto で定義された User メッセージに対応する PbSerializer を実装します。 生成されたクラスと定義されているフィールドすべてを PbSerializer に宣言する必要があります。

class UserPbSerializer < Pb::Serializer::Base
  message ExamplesPb::User

  attribute :id
  attribute :name
end

実装した PbSerializer で、Ruby オブジェクトを protobuf message object にシリアライズできます。

user = User.find(123)
UserPbSerializer.new(user).to_pb
# => <ExamplesPb::User: id: 123, name: "someuser">

各 attribute の値は、PbSerializer インスタンス、もしくはコンストラクタに渡されたオブジェクト から決定されます。

Next read