Module: Assembla::Connection
- Extended by:
- Connection
- Includes:
- Constants
- Included in:
- Connection, Request
- Defined in:
- lib/assembla_api/connection.rb
Overview
Specifies Http connection options
Constant Summary collapse
- ALLOWED_OPTIONS =
[ :headers, :url, :params, :request, :ssl ].freeze
Constants included from Constants
Assembla::Constants::ACCEPT, Assembla::Constants::ACCEPTED_OAUTH_SCOPES, Assembla::Constants::ACCEPT_CHARSET, Assembla::Constants::CACHE_CONTROL, Assembla::Constants::CONTENT_LENGTH, Assembla::Constants::CONTENT_TYPE, Assembla::Constants::DATE, Assembla::Constants::ETAG, Assembla::Constants::HEADER_LAST, Assembla::Constants::HEADER_LINK, Assembla::Constants::HEADER_NEXT, Assembla::Constants::LOCATION, Assembla::Constants::META_FIRST, Assembla::Constants::META_LAST, Assembla::Constants::META_NEXT, Assembla::Constants::META_PREV, Assembla::Constants::META_REL, Assembla::Constants::OAUTH_SCOPES, Assembla::Constants::PARAM_PAGE, Assembla::Constants::PARAM_PER_PAGE, Assembla::Constants::PARAM_START_PAGE, Assembla::Constants::RATELIMIT_LIMIT, Assembla::Constants::RATELIMIT_REMAINING, Assembla::Constants::SERVER, Assembla::Constants::USER_AGENT
Instance Method Summary collapse
- #caching? ⇒ Boolean
- #clear_cache ⇒ Object
-
#connection(api, options = {}) ⇒ Object
Creates http connection.
- #default_options(options = {}) ⇒ Object
-
#stack(options = {}) ⇒ Object
Exposes middleware builder to facilitate custom stacks and easy addition of new extensions such as cache adapter.
Instance Method Details
#caching? ⇒ Boolean
36 37 38 |
# File 'lib/assembla_api/connection.rb', line 36 def caching? !@connection.nil? end |
#clear_cache ⇒ Object
32 33 34 |
# File 'lib/assembla_api/connection.rb', line 32 def clear_cache @connection = nil end |
#connection(api, options = {}) ⇒ Object
Creates http connection
Returns a Fraday::Connection object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/assembla_api/connection.rb', line 54 def connection(api, = {}) = () clear_cache unless .empty? builder = api.stack ? api.stack : stack(.merge!(api: api)) .merge!(builder: builder) if ENV['DEBUG'] p "Connection options : \n" pp end @connection ||= Faraday.new() end |
#default_options(options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/assembla_api/connection.rb', line 17 def ( = {}) accept = [:headers] && [:headers][:accept] { headers: { ACCEPT => accept || 'application/vnd.assembla.v1+json,' \ 'application/vnd.assembla.beta+json;q=0.5,' \ 'application/json;q=0.1', ACCEPT_CHARSET => 'utf-8', USER_AGENT => [:user_agent] }, ssl: [:ssl], url: [:endpoint] } end |
#stack(options = {}) ⇒ Object
Exposes middleware builder to facilitate custom stacks and easy addition of new extensions such as cache adapter.
44 45 46 47 48 49 |
# File 'lib/assembla_api/connection.rb', line 44 def stack( = {}) @stack ||= begin builder_class = defined?(Faraday::RackBuilder) ? Faraday::RackBuilder : Faraday::Builder builder_class.new(&Assembla.default_middleware()) end end |