|  | @@ -14,9 +14,10 @@ INSTALLING
 | 
	
		
			
				|  |  |  ----------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - Install the gRPC core library
 | 
	
		
			
				|  |  | -TODO: describe this, once the core distribution mechanism is defined.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +  TODO: describe this, once the core distribution mechanism is defined.
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  $ gem install grpc
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Installing from source
 | 
	
	
		
			
				|  | @@ -24,37 +25,47 @@ Installing from source
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - Build or Install the gRPC core
 | 
	
		
			
				|  |  |  E.g, from the root of the grpc [git repo](https://github.com/google/grpc)
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  $ cd ../..
 | 
	
		
			
				|  |  |  $ make && sudo make install
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - 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.
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  $ command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
 | 
	
		
			
				|  |  |  $ \curl -sSL https://get.rvm.io | bash -s stable --ruby
 | 
	
		
			
				|  |  |  $
 | 
	
		
			
				|  |  |  $ # follow the instructions to ensure that your're using the latest stable version of Ruby
 | 
	
		
			
				|  |  |  $ # and that the rvm command is installed
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - Install [bundler](http://bundler.io/)
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  $ gem install bundler
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - Finally, install grpc ruby locally.
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  $ cd <install_dir>
 | 
	
		
			
				|  |  |  $ bundle install
 | 
	
		
			
				|  |  |  $ rake  # compiles the extension, runs the unit tests, see rake -T for other options
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CONTENTS
 | 
	
		
			
				|  |  |  --------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Directory structure is the layout for [ruby extensions](http://guides.rubygems.org/gems-with-extensions/)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | - * ext: the extension code
 | 
	
		
			
				|  |  | - * lib: the entrypoint grpc ruby library to be used in a 'require' statement
 | 
	
		
			
				|  |  | - * spec: tests
 | 
	
		
			
				|  |  | - * bin: example gRPC clients and servers, e.g,
 | 
	
		
			
				|  |  | +- 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
 | 
	
		
			
				|  |  | -# client
 | 
	
		
			
				|  |  |  stub = Math::Math::Stub.new('my.test.math.server.com:8080')
 | 
	
		
			
				|  |  |  req = Math::DivArgs.new(dividend: 7, divisor: 3)
 | 
	
		
			
				|  |  |  logger.info("div(7/3): req=#{req.inspect}")
 |