aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ievkit/default.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ievkit/default.rb')
-rw-r--r--lib/ievkit/default.rb149
1 files changed, 149 insertions, 0 deletions
diff --git a/lib/ievkit/default.rb b/lib/ievkit/default.rb
new file mode 100644
index 000000000..af0df422f
--- /dev/null
+++ b/lib/ievkit/default.rb
@@ -0,0 +1,149 @@
+require 'ievkit/response/raise_error'
+require 'ievkit/version'
+
+module Ievkit
+
+ # Default configuration options for {Client}
+ module Default
+
+ # Default API endpoint
+ API_ENDPOINT = "http://localhost:8080/chouette_iev/".freeze
+
+ # Default User Agent header string
+ USER_AGENT = "Ievkit Ruby Gem #{Ievkit::VERSION}".freeze
+
+ # Default media type
+ MEDIA_TYPE = "" # "application/vnd.iev.v1.0+json".freeze
+
+ # Default WEB endpoint
+ WEB_ENDPOINT = "http://localhost:3000".freeze
+
+ # Default page sie
+ PER_PAGE = 12
+
+ # In Faraday 0.9, Faraday::Builder was renamed to Faraday::RackBuilder
+ RACK_BUILDER_CLASS = defined?(Faraday::RackBuilder) ? Faraday::RackBuilder : Faraday::Builder
+
+ # Default Faraday middleware stack
+ MIDDLEWARE = RACK_BUILDER_CLASS.new do |builder|
+ builder.use Ievkit::Response::RaiseError
+ builder.use Faraday::Request::Multipart
+ builder.use FaradayMiddleware::FollowRedirects
+ builder.adapter Faraday.default_adapter
+ end
+
+ class << self
+
+ # Configuration options
+ # @return [Hash]
+ def options
+ Hash[Ievkit::Configurable.keys.map{|key| [key, send(key)]}]
+ end
+
+ # Default access token from ENV
+ # @return [String]
+ def access_token
+ ENV['IEVKIT_ACCESS_TOKEN']
+ end
+
+ # Default API endpoint from ENV or {API_ENDPOINT}
+ # @return [String]
+ def api_endpoint
+ ENV['IEVKIT_API_ENDPOINT'] || API_ENDPOINT
+ end
+
+ # Default pagination preference from ENV
+ # @return [String]
+ def auto_paginate
+ ENV['IEVKIT_AUTO_PAGINATE']
+ end
+
+ # Default OAuth app key from ENV
+ # @return [String]
+ def client_id
+ ENV['IEVKIT_CLIENT_ID']
+ end
+
+ # Default OAuth app secret from ENV
+ # @return [String]
+ def client_secret
+ ENV['IEVKIT_SECRET']
+ end
+
+ # Default options for Faraday::Connection
+ # @return [Hash]
+ def connection_options
+ {
+ :headers => {
+ :accept => default_media_type,
+ :user_agent => user_agent
+ }
+ }
+ end
+
+ # Default media type from ENV or {MEDIA_TYPE}
+ # @return [String]
+ def default_media_type
+ ENV['IEVKIT_DEFAULT_MEDIA_TYPE'] || MEDIA_TYPE
+ end
+
+ # Default Iev username for Basic Auth from ENV
+ # @return [String]
+ def login
+ ENV['IEVKIT_LOGIN']
+ end
+
+ # Default middleware stack for Faraday::Connection
+ # from {MIDDLEWARE}
+ # @return [String]
+ def middleware
+ MIDDLEWARE
+ end
+
+ # Default Iev password for Basic Auth from ENV
+ # @return [String]
+ def password
+ ENV['IEVKIT_PASSWORD']
+ end
+
+ # Default pagination page size from ENV
+ # @return [Fixnum] Page size
+ def per_page
+ page_size = ENV['IEVKIT_PER_PAGE'] || PER_PAGE
+
+ page_size.to_i if page_size
+ end
+
+ # Default proxy server URI for Faraday connection from ENV
+ # @return [String]
+ def proxy
+ ENV['IEVKIT_PROXY']
+ end
+
+ # Default User-Agent header string from ENV or {USER_AGENT}
+ # @return [String]
+ def user_agent
+ ENV['IEVKIT_USER_AGENT'] || USER_AGENT
+ end
+
+ # Default web endpoint from ENV or {WEB_ENDPOINT}
+ # @return [String]
+ def web_endpoint
+ ENV['IEVKIT_WEB_ENDPOINT'] || WEB_ENDPOINT
+ end
+
+ # Default behavior for reading .netrc file
+ # @return [Boolean]
+ def netrc
+ ENV['IEVKIT_NETRC'] || false
+ end
+
+ # Default path for .netrc file
+ # @return [String]
+ def netrc_file
+ ENV['IEVKIT_NETRC_FILE'] || File.join(ENV['HOME'].to_s, '.netrc')
+ end
+
+ end
+ end
+end