alebian/argentinian-validations

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Argentinian::Validations

[![Gem Version](https://badge.fury.io/rb/crf.svg)](https://badge.fury.io/rb/crf)
[![Build Status](https://travis-ci.org/alebian/argentinian-validations.svg)](https://travis-ci.org/alebian/argentinian-validations)
[![Code Climate](https://codeclimate.com/github/alebian/argentinian-validations/badges/gpa.svg)](https://codeclimate.com/github/alebian/argentinian-validations)
[![Test Coverage](https://codeclimate.com/github/alebian/argentinian-validations/badges/coverage.svg)](https://codeclimate.com/github/alebian/argentinian-validations/coverage)

This gem provides classes to validate personal information specific to Argentina like CUIT or CBU.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'argentinian-validations'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install argentinian-validations

## Usage

```ruby
require 'argentinian/validations'

valid_cbu = '2850590940090418135201'
validator = Argentinian::Validations::Cbu.new(valid_cbu)
validator.valid? #=> true
validator.validate! #=> "2850590940090418135201"

invalid_cbu = '1850590940090418135201'
validator = Argentinian::Validations::Cbu.new(invalid_cbu)
validator.valid? #=> false
validator.validate! #=> *** Argentinian::Validations::Cbu::AccountError Exception

valid_cuit = '30707026851'
validator = Argentinian::Validations::Cuit.new(valid_cuit)
validator.valid? #=> true
validator.validate! #=> "30707026851"

invalid_cuit = '20707026851'
validator = Argentinian::Validations::Cuit.new(invalid_cuit)
validator.valid? #=> false
validator.validate! #=> *** Argentinian::Validations::Cuil::InvalidNumberError Exception
```

### Usage in Rails

It is very useful to use the custom validators provided by Rails:

```ruby
# app/validators/cbu_validator.rb
class CbuValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    validator = Argentinian::Validations::Cbu.new(value)
    record.errors.add(attribute, validator.errors.first) unless validator.valid?
  end
end
```

And then in your model:

```ruby
# app/models/my_model.rb
class MyModel < ApplicationRecord
  validates :number, cbu: true
end
```

## Development

After checking out the repo, run `bundle install` to install dependencies.

## 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. Run rubocop (`bundle exec rubocop Gemfile lib spec`)
5. Run rspec (`bundle exec rspec`)
6. Push your branch (`git push origin my-new-feature`)
7. Create a new Pull Request