Module: CreditCardValidations
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/credit_card_validations/card.rb,
lib/credit_card_validations.rb,
lib/credit_card_validations/mmi.rb,
lib/credit_card_validations/luhn.rb,
lib/credit_card_validations/error.rb,
lib/credit_card_validations/factory.rb,
lib/credit_card_validations/version.rb,
lib/credit_card_validations/detector.rb,
lib/credit_card_validations/expiration.rb,
lib/credit_card_validations/configuration.rb
Overview
CreditCardValidations Expiration
Slim parser+validator for card expiration dates.
exp = CreditCardValidations::Expiration.parse('09/27')
exp.valid? exp.expired? exp.last_day
A card is valid through the *last day* of its expiration month, matching how issuers and networks interpret it.
Defined Under Namespace
Modules: Mmi
Classes: Card, Configuration, Detector, Error, Expiration, Factory, Luhn
Constant Summary
collapse
- VERSION =
'9.0.0'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Attribute Details
#configuration ⇒ Object
Returns the value of attribute configuration.
22
23
24
|
# File 'lib/credit_card_validations.rb', line 22
def configuration
@configuration
end
|
Class Method Details
.add_brand(key, rules, options = {}) ⇒ Object
37
38
39
|
# File 'lib/credit_card_validations.rb', line 37
def self.add_brand(key, rules, options = {})
Detector.add_brand(key, rules, options)
end
|
.configuration ⇒ Object
24
25
26
|
# File 'lib/credit_card_validations.rb', line 24
def self.configuration
@configuration ||= Configuration.new
end
|
32
33
34
35
|
# File 'lib/credit_card_validations.rb', line 32
def self.configure
yield(configuration)
reload!
end
|
.data ⇒ Object
45
46
47
|
# File 'lib/credit_card_validations.rb', line 45
def self.data
YAML.safe_load_file(source, permitted_classes: [Symbol]) || {}
end
|
.reload! ⇒ Object
49
50
51
52
53
54
|
# File 'lib/credit_card_validations.rb', line 49
def self.reload!
Detector.brands = {}
data.each do |key, data|
add_brand(key, data.fetch(:rules), data.fetch(:options, {}))
end
end
|
.reset ⇒ Object
28
29
30
|
# File 'lib/credit_card_validations.rb', line 28
def self.reset
@configuration = Configuration.new
end
|
.source ⇒ Object
41
42
43
|
# File 'lib/credit_card_validations.rb', line 41
def self.source
configuration.source || File.join(File.join(File.dirname(__FILE__)), 'data', 'brands.yaml')
end
|