class Protobuf::Generators::ServiceGenerator
def compile
def compile run_once(:compile) do print_class(descriptor.name, :service) do print OptionGenerator.new(descriptor.options, current_indent).to_s if descriptor.options descriptor.method.each do |method_descriptor| print_method(method_descriptor) end end end end
def print_method(method_descriptor)
def print_method(method_descriptor) request_klass = modulize(method_descriptor.input_type) response_klass = modulize(method_descriptor.output_type) name = ENV.key?('PB_USE_RAW_RPC_NAMES') ? method_descriptor.name : method_descriptor.name.underscore options = {} if method_descriptor.options method_descriptor.options.each_field do |field_option| option_value = method_descriptor.options[field_option.name] next unless method_descriptor.options.field?(field_option.name) options[field_option.fully_qualified_name] = serialize_value(option_value) end end rpc = "rpc :#{name}, #{request_klass}, #{response_klass}" if options.empty? puts rpc return end puts rpc + " do" options.each do |option_name, value| indent { puts "set_option #{option_name.inspect}, #{value}" } end puts "end" end