Socket
Book a DemoInstallSign in
Socket

verifier

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

verifier

0.0.1
bundlerRubygems
Version published
Maintainers
1
Created
Source

Verifier

Gem Version Build Status Dependency Status Code Climate Coverage License

The library to verify variables are satisfy given condititions and raise ArgumentError otherwise.

Defines a #verify instance method with a block to be yielded in a variable's scope and raised an error if the block returns false or fails.

Installation

Add this line to your application's Gemfile:

    gem "verifier"

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install verifier

Usage

Include the module into class or Method to use it in the instance methods, or extend the class to check verifier of the class methods.

require "verifier"

class Greeter
  include Verifier
end

This will define the #verify instance method.

Call it from your method with the names of the verified variable and the condition, and the block to be called in the scope of a value, returned by the method.

class Greeter
  # ...
  def hello(name)
    verify(:name, :long_enough) { count > 1 }
    "Hello, #{ name }!"
  end
end

Then define i18n translations for error messages:

# config/locales/en.yml
---
en:
  verifier: # the module's scope
    greeter:  # the class name
      instance: # the scope for the method
        # the message to be raised when the method raises an exception
        fails: "The method fails: %{value}"
        # the message to be raised when the method isn't defined
        undefined: "The method undefined: %{value}"
        name: # the name of the method to be verified
          # the message to be raised when the block fails or returns false
          long_enough: "The name to greet seems damn short: %{value}"

The block is yielded in the scope of a corresponding variable.

An ArgumentError will be raised in any case when:

  • the verified method is undefined;
  • the method raises an exception;
  • the block raises an exception;
  • the block returns a value, whose negation is true (see the motivation [below]{#negation}).
greeter = Greeter.new

greeter.hello "Al"
# => "Hello, Al!"

greeter.hello "A"
# => <ArgumentError @message="The name to greet seems damn short: A" ...>

Compatibility

Tested under MRI rubies >= 2.1

RSpec 3.0+ used for testing

Collection of used testing, debugging and code metric tools is defined in the hexx-suit gem.

Contributing

  • Fork the project.
  • Read the styleguide.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with Rakefile or version (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

License

See MIT LICENSE.

FAQs

Package last updated on 22 Feb 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.