Sha256: 3419afd42552680cd064a4173188f10bd32bc968139d59bf9cb5d1fb3cbba00d

Contents?: true

Size: 1.2 KB

Versions: 17

Compression:

Stored size: 1.2 KB

Contents

module BrocadeVRouter
  class Config
    attr_reader :connection_opts, :request_opts

    def self.define_opts_methods(opts)
      opts.each do |name, _|
        define_method name do |value = nil|
          value ? (opts[name] = value) : opts[name]
        end
      end
    end

    def initialize
      @connection_opts = {
        ssl: {}
      }

      @request_opts = {
        timeout: 5,
        open_timeout: nil
      }

      self.class.define_opts_methods @connection_opts
      self.class.define_opts_methods @request_opts

      @raise_on_fail = true
    end

    def url(value = nil)
      @url ||= value
    end

    def logger(logdev = nil)
      @logger ||= logdev
    end

    def adapter(value = nil)
      @adapter ||= value || Faraday.default_adapter
    end

    def raise_on_fail(value = nil)
      @raise_on_fail = value unless value.nil?
      @raise_on_fail
    end

    def basic_auth(value = nil)
      @basic_auth ||= value
    end

    def connection_options
      @connection_opts.map { |op, _| (value = send(op)) && [op, value] }.to_h
        .merge request: request_options
    end

    def request_options
      request_opts.map { |op, _| (value = send(op)) && [op, value] }
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
brocade_vrouter-0.4.1 lib/brocade_vrouter/config.rb
brocade_vrouter-0.4.0 lib/brocade_vrouter/config.rb
brocade_vrouter-0.3.1 lib/brocade_vrouter/config.rb
brocade_vrouter-0.3.0 lib/brocade_vrouter/config.rb
brocade_vrouter-0.2.4 lib/brocade_vrouter/config.rb
brocade_vrouter-0.2.3 lib/brocade_vrouter/config.rb
brocade_vrouter-0.2.2 lib/brocade_vrouter/config.rb
brocade_vrouter-0.2.1 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.9 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.8 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.7 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.6 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.5 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.4 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.3 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.2 lib/brocade_vrouter/config.rb
brocade_vrouter-0.1.1 lib/brocade_vrouter/config.rb