Defi

Build Status Gem Version Inline docs Documentation

Challenge library.

Contact

Rubies

Installation

Defi is cryptographically signed.

To be sure the gem you install hasn't been tampered with, add my public key (if you haven't already) as a trusted certificate:

$ gem cert --add <(curl -Ls https://raw.github.com/fixrb/defi/master/certs/gem-fixrb-public_cert.pem)
$ gem install defi -P HighSecurity

The HighSecurity trust profile will verify all gems. All of Defi's dependencies are signed.

Or add this line to your application's Gemfile:

gem 'defi'

And then execute:

$ bundle

Usage

Let's challenge -42 to return its absolute value.

Defi.send(:*, 7).to(6) # => 42

Now let's challenge 'foo' to return its absolute value.

Defi.send(:boom).to('foo') # NoMethodError: undefined method `boom' for "foo":String

Security

As a basic form of security Defi provides a set of SHA512 checksums for every Gem release. These checksums can be found in the checksum/ directory. Although these checksums do not prevent malicious users from tampering with a built Gem they can be used for basic integrity verification purposes.

The checksum of a file can be checked using the sha512sum command. For example:

$ sha512sum pkg/defi-0.1.0.gem
a1bf7c28d86ef4f412a9294b4fc40d613ffdb6bc3a0410144d927fa95ba718e1ce7ac20e21845e99860529ad91f231e6436c4730e2ee1f6a13519476be207545  pkg/defi-0.1.0.gem

Versioning

Defi follows Semantic Versioning 2.0.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

See LICENSE.md file.