class FakePin::Card
Constants
- REQUIRED_ADDRESS_PARAMS
- REQUIRED_PARAMS
- SCHEMES
Public Class Methods
create(params)
click to toggle source
# File lib/fake_pin/card.rb, line 23 def self.create(params) new(params).create end
new(params)
click to toggle source
# File lib/fake_pin/card.rb, line 27 def initialize(params) @params = params end
Public Instance Methods
create()
click to toggle source
# File lib/fake_pin/card.rb, line 31 def create required_params = if FakePin.configuration.require_address [ *REQUIRED_PARAMS, *REQUIRED_ADDRESS_PARAMS ] else REQUIRED_PARAMS end @params.require(*required_params) number = @params['number'].to_s.gsub(/[^0-9]+/, '') { "token" => Token.generate('card'), "display_number" => obfuscate_card_number(number), "expiry_month" => @params['expiry_month'], "expiry_year" => @params['expiry_year'], "name" => @params['name'], "address_line1" => @params['address_line1'], "address_line2" => @params['address_line2'], "address_city" => @params['address_city'], "address_postcode" => @params['address_postcode'], "address_state" => @params['address_state'], "address_country" => @params['address_country'], "scheme" => card_scheme(number) } end
Private Instance Methods
card_scheme(number)
click to toggle source
# File lib/fake_pin/card.rb, line 60 def card_scheme(number) SCHEMES.each_pair { |scheme, regex| return scheme if number =~ regex } raise UnrecognisedCardSchemeError end
obfuscate_card_number(card_number)
click to toggle source
# File lib/fake_pin/card.rb, line 66 def obfuscate_card_number(card_number) "XXXX-XXXX-XXXX-#{card_number[-4..-1]}" end