Sha256: 00ae48654a69067e13e4687d489e8ae28485d675f23c93882ef6208df0793bdb
Contents?: true
Size: 1.2 KB
Versions: 5
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Truemail module Client class Configuration DEFAULT_PORT = 9292 Error = Class.new(StandardError) ArgumentError = Class.new(StandardError) do def initialize(arg_value, arg_name) super("#{arg_value} is not a valid #{arg_name[0..-2]}") end end attr_reader :host, :port, :token attr_accessor :secure_connection def initialize(&block) @secure_connection = false @port = Truemail::Client::Configuration::DEFAULT_PORT tap(&block) if block_given? end %i[host port token].each do |method| define_method("#{method}=") do |argument| raise_unless( argument, __method__, method.eql?(:port) ? argument.is_a?(Integer) && argument.positive? : argument.is_a?(String) ) instance_variable_set(:"@#{method}", argument) end end def complete? !!host && !!token end private def raise_unless(argument_context, argument_name, condition) raise Truemail::Client::Configuration::ArgumentError.new(argument_context, argument_name) unless condition end end end end
Version data entries
5 entries across 5 versions & 1 rubygems