# 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: ```ruby gem 'voucher' ``` And then execute: ```sh $ bundle ``` Or install it yourself as: ```sh $ gem install voucher ``` ## Usage Validate the segments in a given election Run it as a CLI tool ```sh voucher validate segments.json -h http://your.node.url:8545 ``` Embedded in your application ```rb require 'voucher' Voucher.configure(host: 'http://localhost:8545') Voucher::Validator.call('segments.json') => true ``` ## Development ### Requirements ```sh 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](https://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](https://opensource.org/licenses/MIT).