Sha256: 0295bc11a49364e0a137751626452825f00e2f4cfe8f446b36874ab3e6f37294

Contents?: true

Size: 960 Bytes

Versions: 3

Compression:

Stored size: 960 Bytes

Contents

require 'yao/plugins'
require 'faraday'
require 'faraday_middleware'
require 'yao/faraday_middlewares'

module Yao::Plugins
  class DefaultClientGenerator
    def call(f, token)
      f.request :accept, 'application/json'
      f.request :url_encoded
      f.request :user_agent

      if token
        f.request :os_token, token
      end

      f.request :read_only

      f.response :os_error_detector
      f.response :json, content_type: /\bjson$/

      if Yao.config.debug
        f.response :logger
        f.response :os_dumper
      end

      if Yao.config.debug_record_response
        f.response :os_response_recorder
      end

      f.adapter Faraday.default_adapter
    end

    Yao::Plugins.register(self, type: :client_generator)

    Yao.config.param :client_generator, :default do |v|
      raise("Invalid client_generator name %s.\nNote: name must be a Symbol" % v.inspect) unless Registry.instance[:client_generator][v]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
yao-0.13.4 lib/yao/plugins/default_client_generator.rb
yao-0.13.3 lib/yao/plugins/default_client_generator.rb
yao-0.13.2 lib/yao/plugins/default_client_generator.rb