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!