Sha256: 13b6524a8e3c2f64e70dbd87127f2d33eccdb630c03539f0b6cdee1b221694ae

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

# frozen_string_literal: true

$LOAD_PATH.unshift File.expand_path('./examples/routeguide')

require 'grpc_kit'
require 'pry'
require 'json'
require 'routeguide_services_pb'

class Server < Routeguide::RouteGuide::Service
  RESOURCE_PATH = './examples/routeguide/routeguide.json'

  def initialize
    File.open(RESOURCE_PATH) do |f|
      features = JSON.load(f.read)
      @features = Hash[features.map { |x| [x['location'], x['name']] }]
    end
  end

  def get_feature(point, _call)
    name = @features.fetch({ 'longitude' => point.longitude, 'latitude' => point.latitude }, '')
    Routeguide::Feature.new(location: point, name: name)
  end
end

sock = TCPServer.new(50051)

server = GrpcKit::Server.new
server.handle(Server.new)
server.run

loop do
  conn = sock.accept
  server.session_start(conn)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grpc_kit-0.1.0 examples/routeguide_server.rb