Voucher
Validate that the segments exist in an Election through the Ethereum blockchain.
Ingest a file full of segments encoded in JSON and validates that each one exists in an Election through the Ethereum blockchain.
Installation
Add this line to your application's Gemfile:
gem 'voucher'
And then execute:
$ bundle
Or install it yourself as:
$ gem install voucher
Usage
Validate the segments in a given election
Run it as a CLI tool
voucher validate segments.json -h http://your.node.url:8545
Embedded in your application
require 'voucher'
Voucher.configure(host: 'http://localhost:8545')
Voucher::Validator.call('segments.json')
=> true
Development
Requirements
gem install bundle
git clone git@github.com:luciditytech/voucher.git
cd voucher
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
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.
Testing
Test from console
In order to test ruby code in interactive console:
$ ./bin/console
irb(main):002:0> Voucher.configure(host: 'http://52.208.46.161:8549')
irb(main):002:0> Voucher::Validator.call('./spec/samples/segments.json')
Notice: by default configuration pointing to your localhost:8545
.
When you want to test with ropsten, you need
Test CLI
Just for this test change the version in version.rb
.
gem uninstall voucher
gem build voucher.gemspec
gem install --local voucher-[your-version].gem
# check the instalation
gem list
# run CLI test locally
voucher validate ./spec/samples/segments.json -h http://52.208.46.161:8549
Run tests
bundle exec rubocop
bundle exec rspec [file: optional]
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/luciditytech/voucher.
License
The gem is available as open source under the terms of the MIT License.