Sha256: 27b6924d542304e60aa81c5a20f0d2c73fb8c5b52863ad9f82671f0ee416af12
Contents?: true
Size: 705 Bytes
Versions: 1
Compression:
Stored size: 705 Bytes
Contents
# frozen_string_literal: true require_relative "./rpc" module ProtoDsl # Service class class Service attr_reader :name, :rpcs def initialize(name) @name = name @rpcs = [] end def rpc(name, request_type, response_type, &block) rpc = Rpc.new(name, request_type, response_type) rpc.instance_eval(&block) if block_given? @rpcs << rpc end def to_proto output = "service #{@name} {\n" @rpcs.each do |rpc| output << rpc.to_proto end output << "}\n" output end def to_server_code output = +"" @rpcs.each do |rpc| output << rpc.to_server_code end output end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
proto_dsl-0.1.1 | lib/proto_dsl/service.rb |