# File lib/j1_app/omniauth/strategies/github.rb, line 101 def primary_email primary = emails.find{ |i| i['primary'] && i['verified'] } primary && primary['email'] || nil end
class OmniAuth::Strategies::GitHub
Constants
- DEFAULT_SCOPE
¶ ↑
OAuth client settings
¶ ↑
Public Instance Methods
callback_url()
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 49 def callback_url options[:redirect_uri] || full_host + script_name + callback_path end
request_phase()
click to toggle source
Calls superclass method
# File lib/j1_app/omniauth/strategies/github.rb, line 34 def request_phase super end
Private Instance Methods
email()
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 97 def email (email_access_allowed?) ? primary_email : raw_info['email'] end
email_access_allowed?()
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 113 def email_access_allowed? return false unless options['scope'] email_scopes = ['user', 'user:email'] scopes = options['scope'].split(',') (scopes & email_scopes).any? end
emails()
click to toggle source
The new /user/emails API - developer.github.com/v3/users/emails/#future-response
# File lib/j1_app/omniauth/strategies/github.rb, line 107 def emails return [] unless email_access_allowed? access_token.options[:mode] = :query @emails ||= access_token.get('user/emails', :headers => { 'Accept' => 'application/vnd.github.v3' }).parsed end
get_scope(params)
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 120 def get_scope(params) raw_scope = params[:scope] || DEFAULT_SCOPE scope_list = raw_scope.split(' ').map { |item| item.split(',') }.flatten scope_list.join(' ') end
primary_email()
click to toggle source
prune!(hash)
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 126 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
raw_info()
click to toggle source
skip_extra?()
click to toggle source
# File lib/j1_app/omniauth/strategies/github.rb, line 133 def skip_extra? !!options[:skip_extra] end