Sha256: bf5d4e181c1ff6b09cf604d6ac0af088cbf9a5143e93516d42fb55b8f6424541

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require 'omniauth-oauth2'

module OmniAuth
  module Strategies
    class Gust < OmniAuth::Strategies::OAuth2
      DEFAULT_SCOPE = 'read-write'

      option :name, "gust"

      option :client_options, {
        :site => 'https://gust.com',
        :authorize_url => '/r/oauth/authorize',
        :token_url => '/r/oauth/token'
      }

      uid { 
        raw_info['id'] 
      }

      info do
        prune!({
          'name' => raw_info["user_name"],
          'email' => raw_info["email"],
          'company_name' => raw_info['company_name'],
          'urls' => {
            'profile' => raw_info['profile_url']
          }
        })
      end

      extra do
        {
          'raw_info' => raw_info
        }
      end

      def raw_info
        return @raw_info if @raw_info
        (access_token.options || {}).merge!({:header_format => 'OAuth %s'})
        @raw_info = access_token.get('/r/oauth/user_details').parsed
      end


      private 
        def prune!(hash)
          hash.delete_if do |_, value| 
            prune!(value) if value.is_a?(Hash)
            value.nil? || (value.respond_to?(:empty?) && value.empty?)
          end
        end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
omniauth-gust-0.1.1 lib/omniauth/strategies/gust.rb
omniauth-gust-0.1.0 lib/omniauth/strategies/gust.rb