AmsVarFile
AmsVarFile generates DPM and DSM variable declaration files and provides for adding and deleting variables programmatically.
Installation
Add this line to your application's Gemfile:
gem 'ams_var_file'And then execute:
$ bundle install
Or install it yourself as:
$ gem install ams_var_file
Usage
First, require the gem:
require "ams_var_file"Note: AmsVarFile can output informative messages to $stdout and $stderr.
To have the messages output, set verbose to true (it's false by default).
AmsVarFile::File.verbose = trueGenerate a Var File
To generate a DPM var file:
AmsVarFile::File.generate("dpm", "path/to/dpms.gdl")To generate a DSM var file:
AmsVarFile::File.generate("dsm", "path/to/dsms.gdl")AmsVarFile will throw an IOError exception if the file already exists.
The generated files will contain markers that allow AmsVarFile to understand
where to insert/delete variables. Removing or modifying these markers will
result in a InvalidFileFormat exception being thrown.
The markers are:
// START DEFINITIONS
// END DEFINITIONS
// START INITS
// END INITS
The naming convention of the files are dpms.gdl for DPMs
and dsms.gdl for DSMs.
Adding Variable Declarations
Before adding a variable to a file, the file must exist. See the generation
details above for information on generating a file.
To add a DPM variable:
# var_type can be one of:
# boolean
# date
# datetime
# money
# numeric
# numeric(#) where '#' indicates precision
# percentage
# text
var_type = "text"
# var_id is a valid GDL identifier (ie, no spaces or special chars)
var_id = "myDummyVar"
# var_alias is the variable's actual name in the AMS system. It *can*
# contain spaces and such.
var_alias = "My Dummy Var"
# file_path is any valid path to the `.gdl` file to add the variable to.
file_path = "path/to/dpms.gdl"
AmsVarFile::File.add_dpm_var(var_type, var_id, var_alias, file_path)Adding a DSM variable is virtually the same, except a different method
is called:
var_type = "text"
var_id = "myDummyDSMVar"
var_alias = "My Dummy DSM Var"
file_path = "path/to/dsms.gdl"
AmsVarFile::File.add_dsm_var(var_type, var_id, var_alias, file_path)Deleting Variable Declarations
Obviously, deleting a variable from a non-existing file won't work.
To delete a DPM variable:
var_id = "myDummyVar"
file_path = "path/to/dpms.gdl"
AmsVarFile::File.del_dpm_var(var_id, file_path)Ditto for a DSM variable:
var_id = "myDummyDSMVar"
file_path = "path/to/dsms.gdl"
AmsVarFile::File.del_dsm_var(var_id, file_path)AmsVarFile will handle the deletion of a non-existing variable gracefully:
it will not throw an exception. If verbose is true, you will
see a message (output on $stderr) indicating the variable wasn't found.
Development
After checking out the repo, run bin/setup to install dependencies. Then,
run rake rspec to run the tests. You can also run bin/console for an
interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install.
To release a new version, update the version number in version.rb, and then
run bundle exec rake release, which will create a git tag for the version,
push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/jmcaffee/ams_var_file.
- Fork it ( https://github.com/jmcaffee/ams_var_file/fork )
- Clone it (
git clone git@github.com:[my-github-username]/ams_var_file.git) - Create your feature branch (
git checkout -b my-new-feature) - Create tests for your feature branch
- Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
License
The gem is available as open source under the terms of the MIT License.
See LICENSE.txt for details.