1*cc02d7e2SAndroid Build Coastguard WorkergRPC in 3 minutes (Ruby) 2*cc02d7e2SAndroid Build Coastguard Worker======================== 3*cc02d7e2SAndroid Build Coastguard Worker 4*cc02d7e2SAndroid Build Coastguard WorkerBACKGROUND 5*cc02d7e2SAndroid Build Coastguard Worker------------- 6*cc02d7e2SAndroid Build Coastguard WorkerFor this sample, we've already generated the server and client stubs from [helloworld.proto][] 7*cc02d7e2SAndroid Build Coastguard Worker 8*cc02d7e2SAndroid Build Coastguard WorkerPREREQUISITES 9*cc02d7e2SAndroid Build Coastguard Worker------------- 10*cc02d7e2SAndroid Build Coastguard Worker 11*cc02d7e2SAndroid Build Coastguard Worker- Ruby 2.x 12*cc02d7e2SAndroid Build Coastguard WorkerThis requires Ruby 2.x, as the gRPC API surface uses keyword args. 13*cc02d7e2SAndroid Build Coastguard WorkerIf you don't have that installed locally, you can use [RVM][] to use Ruby 2.x for testing without upgrading the version of Ruby on your whole system. 14*cc02d7e2SAndroid Build Coastguard WorkerRVM is also useful if you don't have the necessary privileges to update your system's Ruby. 15*cc02d7e2SAndroid Build Coastguard Worker 16*cc02d7e2SAndroid Build Coastguard Worker ```sh 17*cc02d7e2SAndroid Build Coastguard Worker $ # RVM installation as specified at https://rvm.io/rvm/install 18*cc02d7e2SAndroid Build Coastguard Worker $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 19*cc02d7e2SAndroid Build Coastguard Worker $ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2 20*cc02d7e2SAndroid Build Coastguard Worker $ 21*cc02d7e2SAndroid Build Coastguard Worker $ # follow the instructions to ensure that your're using the latest stable version of Ruby 22*cc02d7e2SAndroid Build Coastguard Worker $ # and that the rvm command is installed 23*cc02d7e2SAndroid Build Coastguard Worker ``` 24*cc02d7e2SAndroid Build Coastguard Worker- *N.B* Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set-up of RVM. 25*cc02d7e2SAndroid Build Coastguard Worker 26*cc02d7e2SAndroid Build Coastguard WorkerINSTALL 27*cc02d7e2SAndroid Build Coastguard Worker------- 28*cc02d7e2SAndroid Build Coastguard Worker- [Install gRPC Ruby][] 29*cc02d7e2SAndroid Build Coastguard Worker 30*cc02d7e2SAndroid Build Coastguard Worker- Use bundler to install the example package's dependencies 31*cc02d7e2SAndroid Build Coastguard Worker 32*cc02d7e2SAndroid Build Coastguard Worker ```sh 33*cc02d7e2SAndroid Build Coastguard Worker $ # from this directory 34*cc02d7e2SAndroid Build Coastguard Worker $ gem install bundler # if you don't already have bundler available 35*cc02d7e2SAndroid Build Coastguard Worker $ bundle install 36*cc02d7e2SAndroid Build Coastguard Worker ``` 37*cc02d7e2SAndroid Build Coastguard Worker 38*cc02d7e2SAndroid Build Coastguard WorkerTry it! 39*cc02d7e2SAndroid Build Coastguard Worker------- 40*cc02d7e2SAndroid Build Coastguard Worker 41*cc02d7e2SAndroid Build Coastguard Worker- Run the server 42*cc02d7e2SAndroid Build Coastguard Worker 43*cc02d7e2SAndroid Build Coastguard Worker ```sh 44*cc02d7e2SAndroid Build Coastguard Worker $ # from this directory 45*cc02d7e2SAndroid Build Coastguard Worker $ bundle exec ./greeter_server.rb & 46*cc02d7e2SAndroid Build Coastguard Worker ``` 47*cc02d7e2SAndroid Build Coastguard Worker 48*cc02d7e2SAndroid Build Coastguard Worker- Run the client 49*cc02d7e2SAndroid Build Coastguard Worker 50*cc02d7e2SAndroid Build Coastguard Worker ```sh 51*cc02d7e2SAndroid Build Coastguard Worker $ # from this directory 52*cc02d7e2SAndroid Build Coastguard Worker $ bundle exec ./greeter_client.rb 53*cc02d7e2SAndroid Build Coastguard Worker ``` 54*cc02d7e2SAndroid Build Coastguard Worker 55*cc02d7e2SAndroid Build Coastguard WorkerTutorial 56*cc02d7e2SAndroid Build Coastguard Worker-------- 57*cc02d7e2SAndroid Build Coastguard Worker 58*cc02d7e2SAndroid Build Coastguard WorkerYou can find a more detailed tutorial in [gRPC Basics: Ruby][] 59*cc02d7e2SAndroid Build Coastguard Worker 60*cc02d7e2SAndroid Build Coastguard Worker[helloworld.proto]:../protos/helloworld.proto 61*cc02d7e2SAndroid Build Coastguard Worker[RVM]:https://www.rvm.io/ 62*cc02d7e2SAndroid Build Coastguard Worker[Install gRPC ruby]:../../src/ruby#installation 63*cc02d7e2SAndroid Build Coastguard Worker[gRPC Basics: Ruby]:https://grpc.io/docs/languages/ruby/basics 64