class Crowdkit::Config

Public Class Methods

config(key, value = nil, &block) click to toggle source
# File lib/crowdkit/config.rb, line 3
def self.config(key, value = nil, &block)
  @@config ||= {}
  attr_accessor key
  @@config[key] = {value: value, block: block}
end
new(overrides = {}) { |self| ... } click to toggle source
# File lib/crowdkit/config.rb, line 20
def initialize(overrides = {})
  @@config.each do |key,config|
    self.send("#{key}=", overrides[key] || ENV["CROWDKIT_#{key.upcase}"] || config[:value])
  end
  yield(self) if block_given?
end

Public Instance Methods

connection_options() click to toggle source
# File lib/crowdkit/config.rb, line 44
def connection_options
  {
    headers: { accept: "application/json", user_agent: self.user_agent },
    ssl: self.ssl
  }
end
stack(&block) click to toggle source
# File lib/crowdkit/config.rb, line 27
def stack(&block)
  @stack ||= begin
    if block_given?
      Faraday::RackBuilder.new(&block)
    else
      Faraday::RackBuilder.new(&default_middleware)
    end
  end
end
to_hash() click to toggle source
# File lib/crowdkit/config.rb, line 37
def to_hash
  @@config.inject({}) do |memo,(key,value)|
    memo[key] = instance_variable_get(:"@#{key}")
    memo
  end
end

Protected Instance Methods

default_middleware() click to toggle source
# File lib/crowdkit/config.rb, line 53
def default_middleware
  proc do |builder|
    builder.response :logger if ENV['DEBUG'] || self.debug
    builder.use Faraday::Request::TokenAuthentication, self.access_token
    builder.use Crowdkit::Middleware::RaiseError
    builder.adapter self.adapter || Faraday.default_adapter
  end
end