Tacview Client

A Ruby client that speaks the Tacview protocol and can connect to a Tacview compatible server.

This Gem is tested against the latest non-preview releases of Ruby and JRuby.

Installation

Add this line to your application's Gemfile:

gem 'tacview_client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install tacview_client

Usage

API

To connect to a Tacview server with this library you can use the following code


require 'tacview_client'

# See docs for all parameters
client = TacviewClient::Client.new host: 127.0.0.1,
                                   processor: ProcessorInstance

This gem uses Inversion Of Control principles and expects you to provide an object to receive events for processing. This can be a Module or a Class and it must implement the methods descibed in the BaseProcessor class. See the documentation of this class for more information.

For an example of this see the ConsoleOutputter module in the exe/connect_tacview file

Logging

This gem provides no logging out of the box. If you want to add logging then the recommended approach is to create your own logger class and use Module.prepend to prepend it to the Client class (For logging connection information) or the Reader class's #route_line method for logging of the raw ACMI lines

For an example of this see the TacviewClientLogger module in the exe/connect_tacview file

Command-line

This gem provides a command-line application. Use connect_tacview --help for invocation information. Thie command-line will connect to a Tacview server and print some connection debug information followed by the parsed event stream to the terminal

Development

After checking out the repo, run bin/setup to install dependencies. Then run rake to run rubocop and the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

Contributing

Bug reports and pull requests are welcome on GitLab.

License

The gem is available as open source under the terms of the MIT License.