module QuizApiClient class Config DEFAULT_PROTOCOL = 'https'.freeze ERROR_HANDLERS = %i[sentry_raven].freeze class InvalidErrorHandler < StandardError; end attr_reader :error_handler attr_writer :protocol attr_accessor :consumer_key, :consumer_request_id, :host, :shared_secret def initialize yield(self) if block_given? end def protocol @protocol || DEFAULT_PROTOCOL end def error_handler=(handler) validate_error_hander!(handler) @error_handler = handler end private def validate_error_hander!(handler) return unless handler unless ERROR_HANDLERS.include?(handler) raise InvalidErrorHandler, "It must be one of the following: #{ERROR_HANDLERS.inspect}" end @error_handler = handler.to_sym end end end