This file can be viewed as HTML at:
doc/index.html
----------------------------------------------------------------------
This project uses inline Ruby scripting (ERB) to generate substantial portions
of the NetLinx files. These files end in ***.axi.erb***, and the `.erb` extension
is dropped when the script is compiled.
***MODIFICATIONS*** to the project should be performed in the `.axi.erb` files, as
their `.axi` counterparts are regenerated when the project is compiled.
This means that proficiency in the Ruby programming language is *REQUIRED*
to make changes to this project. There are plenty of online tutorials and
books about Ruby for a programmer to learn the skills required to maintain
this project within several weeks. See the development section below.
***COMPILING*** the project is a simple process with the right
build tools, which are listed below.
----------------------------------------------------------------------
## Build Tools
In addition to the AMX developer tools, the following are required:
### NetLinx ERB
[NetLinx ERB](https://github.com/amclain/netlinx-erb) is the code generation
framework used by this project. The installation process below should
automatically install this package. For information regarding its usage, see:
* [Readme](https://github.com/amclain/netlinx-erb/blob/master/README.md)
* [API Documentation](http://www.rubydoc.info/gems/netlinx-erb)
### Ruby Installer
> http://rubyinstaller.org/downloads
Ruby 2.0.0-p451 was used for this project.
Higher versions will probably be compatible.
The DEVKIT listed on the download page should
also be installed.
### Ruby Gems
Rake and Bundler are required.
From the command line:
gem install rake bundler
### Building The Project
From the command line in the project's `amx` directory:
bundle
bundle exec rake
The files will be auto-generated and compiled, at which point
they can be loaded onto the master with the AMX FileTransfer2
utility or NetLinx Studio.
## Development
Although it is possible to maintain this project with a standard text
editor, or possibly NetLinx Studio, it is far easier with a few
additional tools.
### Sublime Text 3
> http://www.sublimetext.com/3
### Sublime Text AMX NetLinx Plugin
> http://sourceforge.net/p/sublime-netlinx/wiki/install-via-version-control
This plugin, available for Sublime Text, allows for syntax highlighting of the
`.axi.erb` files and makes the inline Ruby blocks significantly easier to view.
Note: At the time of this writing the syntax highlighting is under development
in the `dev` branch of the plugin repository. However, it will ideally be merged
into `default` by the time this project needs to be maintained.
### Rake
> https://github.com/jimweirich/rake
Installed via `gem install rake`.
This is the program that launches the automated tasks.
Build system:
`bundle exec rake`
Run tests, generate doc:
`bundle exec test'
### RSpec
> https://relishapp.com/rspec
Installed via `bundle update`.
RSpec is a tool used to run tests on Ruby code, as well as serve as documentation.
There are many tutorials on RSpec online, including their website listed above.
### Pry
> http://pryrepl.org
Installed via:
gem install pry
gem install rb-readline
Pry is a handy interactive terminal to manipluate running code.