credit_card_validations 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/active_model/credit_card_number_validator.rb +16 -0
- data/lib/credit_card_validations.rb +2 -2
- data/lib/credit_card_validations/detector.rb +1 -1
- data/lib/credit_card_validations/version.rb +1 -1
- data/test/credit_card_validations_test.rb +1 -2
- metadata +10 -10
- data/lib/credit_card_number_validator.rb +0 -11
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            module ActiveModel
         | 
| 2 | 
            +
              module Validations
         | 
| 3 | 
            +
                class CreditCardNumberValidator < EachValidator
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                  def validate_each(record, attribute, value)
         | 
| 6 | 
            +
                    brands = options.fetch(:brands) 
         | 
| 7 | 
            +
                    record.errors[attribute] << (options[:message] || "is not valid") unless credit_card_valid?(value, Array.wrap(brands))
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def credit_card_valid?(number, brands = [])
         | 
| 11 | 
            +
                    CreditCardValidations::Detector.new(number).valid?(*brands)
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            require 'credit_card_validations/version'
         | 
| 2 2 | 
             
            require 'active_model'
         | 
| 3 | 
            -
            require 'active_support/ | 
| 3 | 
            +
            require 'active_support/core_ext'
         | 
| 4 4 | 
             
            require 'active_model/validations'
         | 
| 5 | 
            -
            require 'credit_card_number_validator'
         | 
| 5 | 
            +
            require 'active_model/credit_card_number_validator'
         | 
| 6 6 |  | 
| 7 7 | 
             
            module CreditCardValidations
         | 
| 8 8 | 
             
               extend ActiveSupport::Autoload
         | 
| @@ -22,7 +22,7 @@ module CreditCardValidations | |
| 22 22 | 
             
                def valid_number?(*brands)
         | 
| 23 23 | 
             
                  return nil unless valid_luhn?
         | 
| 24 24 | 
             
                  number_length = number.length
         | 
| 25 | 
            -
                  brand_rules = brands.blank? ? self.rules : self.rules.slice(*brands.map{|el| el.downcase | 
| 25 | 
            +
                  brand_rules = brands.blank? ? self.rules : self.rules.slice(*brands.map{ |el| el.downcase })
         | 
| 26 26 | 
             
                  unless brand_rules.blank?
         | 
| 27 27 | 
             
                    brand_rules.each do |brand_name, rules|
         | 
| 28 28 | 
             
                      rules.each do |rule|
         | 
| @@ -14,7 +14,6 @@ class CreditCardValidationsTest < Test::Unit::TestCase | |
| 14 14 | 
             
                validates :number, presence: true, credit_card_number: {brands: [:amex, :maestro]}
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 | 
            -
             | 
| 18 17 | 
             
              def initialize name
         | 
| 19 18 | 
             
                super name
         | 
| 20 19 | 
             
                @test_numbers = {
         | 
| @@ -79,7 +78,7 @@ class CreditCardValidationsTest < Test::Unit::TestCase | |
| 79 78 | 
             
                 cc.number = @test_numbers[:mastercard]
         | 
| 80 79 | 
             
                 assert !cc.valid?
         | 
| 81 80 | 
             
                 cc.number = @test_numbers[:amex]
         | 
| 82 | 
            -
                 assert cc.valid?
         | 
| 81 | 
            +
                 assert cc.valid?     
         | 
| 83 82 | 
             
              end
         | 
| 84 83 |  | 
| 85 84 | 
             
              def test_string_extension
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: credit_card_validations
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.1. | 
| 4 | 
            +
              version: 1.1.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -13,7 +13,7 @@ date: 2013-04-23 00:00:00.000000000 Z | |
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activemodel
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70129509894700 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '3.0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70129509894700
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: activesupport
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70129509900380 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '3.0'
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70129509900380
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: test-unit
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70129509896480 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70129509896480
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: rake
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70129509904920 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,7 +54,7 @@ dependencies: | |
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
              type: :development
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70129509904920
         | 
| 58 58 | 
             
            description: A ruby gem for validating credit card numbers (a port of ZF2 Zend\Validator\CreditCard)
         | 
| 59 59 | 
             
            email:
         | 
| 60 60 | 
             
            - fedoronchuk@gmail.com
         | 
| @@ -67,7 +67,7 @@ files: | |
| 67 67 | 
             
            - README.md
         | 
| 68 68 | 
             
            - Rakefile
         | 
| 69 69 | 
             
            - credit_card_validations.gemspec
         | 
| 70 | 
            -
            - lib/credit_card_number_validator.rb
         | 
| 70 | 
            +
            - lib/active_model/credit_card_number_validator.rb
         | 
| 71 71 | 
             
            - lib/credit_card_validations.rb
         | 
| 72 72 | 
             
            - lib/credit_card_validations/card_rules.rb
         | 
| 73 73 | 
             
            - lib/credit_card_validations/detector.rb
         | 
| @@ -1,11 +0,0 @@ | |
| 1 | 
            -
            class CreditCardNumberValidator < ActiveModel::EachValidator
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              def validate_each(record, attribute, value)
         | 
| 4 | 
            -
                brands = options.fetch(:brands)
         | 
| 5 | 
            -
                record.errors[attribute] << (options[:message] || "is not valid") unless credit_card_valid?(value, Array.wrap(brands))
         | 
| 6 | 
            -
              end
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              def credit_card_valid?(number, brands = [])
         | 
| 9 | 
            -
                CreditCardValidations::Detector.new(number).valid?(*brands)
         | 
| 10 | 
            -
              end
         | 
| 11 | 
            -
            end
         |