forked from sferik/twitter-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configuration.rb
37 lines (30 loc) · 1.11 KB
/
configuration.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require 'faraday'
require File.expand_path('../version', __FILE__)
module Twitter
module Configuration
VALID_OPTIONS_KEYS = [:consumer_key, :consumer_secret, :oauth_token, :oauth_token_secret, :adapter, :endpoint, :search_endpoint, :format, :user_agent].freeze
VALID_FORMATS = [:json, :xml].freeze
DEFAULT_ADAPTER = Faraday.default_adapter.freeze
DEFAULT_ENDPOINT = 'https://api.twitter.com/1/'.freeze
DEFAULT_SEARCH_ENDPOINT = 'https://search.twitter.com/'.freeze
DEFAULT_FORMAT = :json.freeze
DEFAULT_USER_AGENT = "Twitter Ruby Gem #{Twitter::VERSION}".freeze
attr_accessor *VALID_OPTIONS_KEYS
def self.extended(base)
base.reset
end
def configure
yield self
end
def options
VALID_OPTIONS_KEYS.inject({}){|o,k| o.merge!(k => send(k)) }
end
def reset
self.adapter = DEFAULT_ADAPTER
self.endpoint = DEFAULT_ENDPOINT
self.search_endpoint = DEFAULT_SEARCH_ENDPOINT
self.format = DEFAULT_FORMAT
self.user_agent = DEFAULT_USER_AGENT
end
end
end