https://github.com/ruby/gserver
GServer implements a generic server
https://github.com/ruby/gserver
Last synced: 5 months ago
JSON representation
GServer implements a generic server
- Host: GitHub
- URL: https://github.com/ruby/gserver
- Owner: ruby
- License: other
- Created: 2014-08-15T01:12:12.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-03-21T12:37:26.000Z (over 2 years ago)
- Last Synced: 2025-01-30T07:32:47.365Z (5 months ago)
- Language: Ruby
- Size: 12.7 KB
- Stars: 33
- Watchers: 31
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Gserver
GServer implements a generic server, featuring thread pool management,
simple logging, and multi-server management. See HttpServer in
sample/xmlrpc.rb in the Ruby standard library for an example of
GServer in action.## Installation
Add this line to your application's Gemfile:
```ruby
gem 'gserver'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install gserver
## Usage
Using GServer is simple. Below we implement a simple time server, run it,
query it, and shut it down. Try this code in `irb`:```ruby
require 'gserver'#
# A server that returns the time in seconds since 1970.
#
class TimeServer < GServer
def initialize(port=10001, *args)
super(port, *args)
end
def serve(io)
io.puts(Time.now.to_i)
end
end# Run the server with logging enabled (it's a separate thread).
server = TimeServer.new
server.audit = true # Turn logging on.
server.start
```Now, point your browser to http://localhost:10001 to see it working.
```ruby
# See if it's still running.
GServer.in_service?(10001) # -> true
server.stopped? # -> false# Shut the server down gracefully.
server.shutdown# Alternatively, stop it immediately.
GServer.stop(10001)
# or, of course, "server.stop".
```All the business of accepting connections and exception handling is taken
care of. All we have to do is implement the method that actually serves the
client.## Contributing
1. Fork it ( https://github.com/ruby/gserver/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request