Sha256: 96e19a090113029909be285760262cd25fc069bc6410f78cafcb2dce8b8f9b44

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

module Restly::Configuration

  def self.load_config(hash)
    @config = hash.symbolize_keys
  end

  private

  def self.config
    defaults = {
      session_key: :access_token,
      load_middleware: true,
      use_oauth: false,
      cache: false,
      default_format: :json,
      oauth_options: {
        :authorize_url    => '/oauth/authorize',
        :token_url        => '/oauth/token',
        :token_method     => :post,
      },
      client_options: {
        :connection_opts  => {},
        :max_redirects    => 5,
        :raise_errors     => true
      }
    }
    config = defaults.deep_merge(@config || {})
    config.assert_valid_keys(:session_key, :load_middleware, :oauth_options, :use_oauth, :cache, :cache_options, :client_options, :site, :default_format)
    config
  end

  def self.client_options
    config[:client_options].merge(config[:oauth_options])
  end

  def self.method_missing(m, *args, &block)
    config.with_indifferent_access[m]
  end

  def respond_to_missing?
    true
  end

  config_file = File.join(Rails.root, 'config', 'restly.yml')
  load_config YAML.load_file(config_file)[Rails.env] if defined?(Rails) && File.exists?(config_file)

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
restly-0.0.1.alpha.6 lib/restly/configuration.rb