Class: GrpcRails::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/grpc_rails/server.rb

Constant Summary collapse

EXECUTABLES =
['bin/rails', 'script/rails']

Instance Method Summary collapse

Constructor Details

#initialize(host = '0.0.0.0', port = 3001, env = 'development') ⇒ Server

Returns a new instance of Server.



7
8
9
10
11
# File 'lib/grpc_rails/server.rb', line 7

def initialize(host='0.0.0.0', port=3001, env='development')
  @host = host
  @port = port
  ENV['RAILS_ENV'] = env
end

Instance Method Details

#serveObject



22
23
24
25
26
27
28
29
# File 'lib/grpc_rails/server.rb', line 22

def serve
  load_rails_environment!

  @server ||= GRPC::RpcServer.new
  @server.add_http2_port "#{@host}:#{@port}", :this_port_is_insecure
  services.each { |service| @server.handle service }
  @server.run_till_terminated
end

#servicesObject



13
14
15
16
17
18
19
20
# File 'lib/grpc_rails/server.rb', line 13

def services
  Dir["#{Rails.root}/app/services/**/*.rb"].each { |f| require f }

  Dir["#{Rails.root}/app/services/*.rb"].map do |file|
    class_name = file.split('/').last.sub(/\.rb$/, '').camelize
    Object.const_get class_name
  end
end