module CreditCardSmsParser

Constants

CARD_MAP

Public Instance Methods

parse_sms(sms_message, phone_number = nil) click to toggle source
# File lib/credit_card_sms_parser.rb, line 59
def parse_sms(sms_message, phone_number = nil)
  tokens = KoreanCreditCardLexer.lex(sms_message)
  h = tokens.inject({}) do |memo, t|
    memo[t.type] = t.value
    memo
  end

  if phone_number
    h.merge(card_company_name: CARD_MAP[phone_number])
  end

  h.reject {|key, _|
    key == :header || key == :type || key == :punctuation || key == :space || key == :EOS
  }
end