Merge pull request #1889 from tbetbetbe/grpc-ruby-update-readme-install

Update INSTALL on Ruby README.md
pull/1893/head
Jayant Kolhe 10 years ago
commit ab14dde1e0
  1. 68
      src/ruby/README.md

@ -4,48 +4,44 @@ gRPC Ruby
A Ruby implementation of gRPC. A Ruby implementation of gRPC.
Status Status
------- ------
Alpha : Ready for early adopters Alpha : Ready for early adopters
INSTALLATION PREREQUISITES PREREQUISITES
-------------------------- -------------
This requires Ruby 2.1, as the RPC API surface uses keyword args. - Ruby 2.x. The gRPC API uses keyword args.
- [homebrew][] on Mac OS X, [linuxbrew][] on Linux. These simplify the installation of the gRPC C core.
INSTALLATION
QUICK - INSTALL
--------------- ---------------
On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
- Clone this repository. Run the following command to install gRPC Ruby.
- Follow the instructions in [INSTALL](../../INSTALL) to install the gRPC C core.
- If you don't have Ruby 2.1 installed, switch to the more detailed instructions below
- Use bundler to install
```sh ```sh
$ # from this directory $ curl -fsSL https://goo.gl/getgrpc | bash -s ruby
$ gem install bundler && bundle install
``` ```
This will download and run the [gRPC install script][], then install the latest version of gRPC Ruby gem. It also installs Protocol Buffers compiler (_protoc_) and the gRPC _protoc_ plugin for ruby.
Installing from source BUILD FROM SOURCE
---------------------- ---------------------
- Clone this repository
- Build the gRPC C core - Build the gRPC C core
E.g, from the root of the gRPC [git repo](https://github.com/google/grpc) E.g, from the root of the gRPC [Git repository](https://github.com/google/grpc)
```sh ```sh
$ cd ../.. $ cd ../..
$ make && sudo make install $ make && sudo make install
``` ```
- Install Ruby 2.1. Consider doing this with [RVM](http://rvm.io), it's a nice way of controlling - Install Ruby 2.x. Consider doing this with [RVM](http://rvm.io), it's a nice way of controlling
the exact ruby version that's used. the exact ruby version that's used.
```sh ```sh
$ command curl -sSL https://rvm.io/mpapis.asc | gpg --import - $ command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2.1 $ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2
$ $
$ # follow the instructions to ensure that your're using the latest stable version of Ruby $ # follow the instructions to ensure that your're using the latest stable version of Ruby
$ # and that the rvm command is installed $ # and that the rvm command is installed
``` ```
- Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set up of RVM - Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set up of RVM
- Install [bundler](http://bundler.io/) - Install [bundler](http://bundler.io/)
@ -53,30 +49,36 @@ $ # and that the rvm command is installed
$ gem install bundler $ gem install bundler
``` ```
- Finally, install the gRPC gem locally. - Finally, build and install the gRPC gem locally.
```sh ```sh
$ # from this directory $ # from this directory
$ bundle install # creates the ruby bundle, including building the grpc extension $ bundle install # creates the ruby bundle, including building the grpc extension
$ rake # runs the unit tests, see rake -T for other options $ rake # runs the unit tests, see rake -T for other options
``` ```
DOCUMENTATION
-------------
- rubydoc for the gRPC gem is available online at [rubydoc][].
- the gRPC Ruby reference documentation is available online at [grpc.io][]
CONTENTS CONTENTS
-------- --------
Directory structure is the layout for [ruby extensions][]
- ext: the gRPC ruby extension
- lib: the entrypoint gRPC ruby library to be used in a 'require' statement
- spec: Rspec unittests
- bin: example gRPC clients and servers, e.g,
Directory structure is the layout for [ruby extensions](http://guides.rubygems.org/gems-with-extensions/)
- ext:
the gRPC ruby extension
- lib:
the entrypoint gRPC ruby library to be used in a 'require' statement
- spec:
Rspec unittest
- bin:
example gRPC clients and servers, e.g,
```ruby ```ruby
stub = Math::Math::Stub.new('my.test.math.server.com:8080') stub = Math::Math::Stub.new('my.test.math.server.com:8080')
req = Math::DivArgs.new(dividend: 7, divisor: 3) req = Math::DivArgs.new(dividend: 7, divisor: 3)
logger.info("div(7/3): req=#{req.inspect}") GRPC.logger.info("div(7/3): req=#{req.inspect}")
resp = stub.div(req) resp = stub.div(req)
logger.info("Answer: #{resp.inspect}") GRPC.logger.info("Answer: #{resp.inspect}")
``` ```
[homebrew]:http://brew.sh
[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
[ruby extensions]:http://guides.rubygems.org/gems-with-extensions/
[rubydoc]: http://www.rubydoc.info/gems/grpc
[grpc.io]: http://www.grpc.io/docs/installation/ruby.html

Loading…
Cancel
Save