diff options
Diffstat (limited to 'lib/ievkit/default.rb')
| -rw-r--r-- | lib/ievkit/default.rb | 149 | 
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 | 
