Sha256: c18a27cbf52184d9f9d45d5bbab7a6e9d07ed2591752fa91fa99cf13bd889899
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module FinAppsCore module REST # Represents the client configuration options class Configuration # :nodoc: using ObjectExtensions attr_accessor :tenant_token, :user_identifier, :user_token, :host, :proxy, :timeout, :retry_limit, :rashify, :log_level, :request_id, :consumer_id, :tenant_id def initialize(options = {}) FinAppsCore::REST::Defaults::DEFAULTS.merge(remove_empty_options(options)) .each {|key, value| public_send("#{key}=", value) } fail_invalid_host fail_invalid_timeout end def valid_user_credentials? FinAppsCore::REST::Credentials.new(user_identifier, user_token).valid? end private def fail_invalid_host return if valid_host? fail FinAppsCore::InvalidArgumentsError, "Invalid argument. {host: #{host}}" end def fail_invalid_timeout return if timeout.integer? fail FinAppsCore::InvalidArgumentsError, "Invalid argument. {timeout: #{timeout}}" end def valid_host? host.start_with?('http://', 'https://') end def remove_empty_options(hash) hash.compact end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
finapps_core-5.0.13 | lib/finapps_core/rest/configuration.rb |