lib/parking_ticket.rb in parking_ticket-1.0.1 vs lib/parking_ticket.rb in parking_ticket-1.0.32

- old
+ new

@@ -8,10 +8,39 @@ require 'client/pay_by_phone/adapter' require 'client/pay_by_phone/request' module ParkingTicket class Base + class << self + def valid_credentials?(adapter_name, username, password) + adapter = Client::PayByPhone::Adapter if adapter_name == 'pay_by_phone' + raise Error, 'EasyPark will be handled in the next major release' if adapter_name == 'easy_park' + raise Error, "Unhandled adapter : #{adapter_name}" unless adapter + + adapter.valid_credentials?(username, password) + end + + def config + yield(self) + end + + attr_accessor :ticket_format + + def format_ticket(ticket) + return unless ticket_format + + ticket_format.each_with_object({}) do |element, acumulator| + if element.is_a?(Hash) + original_key = element.keys.first + target_key = element.values.first + acumulator[target_key] = ticket[original_key] + else + acumulator[element] = ticket[element] + end + end + end + end attr_reader :configuration class Error < StandardError end @@ -28,10 +57,12 @@ def renew adapter.renew unless current_ticket end def current_ticket - adapter.current_ticket + ticket = adapter.current_ticket + ticket = self.class.format_ticket(ticket) if self.class.ticket_format && ticket + ticket end private def load_adapter!