Sha256: af4e361e5248acf7daa60400b2c410e57948ed348eb80b48b910452795618eae
Contents?: true
Size: 1.8 KB
Versions: 2
Compression:
Stored size: 1.8 KB
Contents
require 'yaml' module WeBridgeRailsEngineUsers class ProviderSettings < Hash @@instance = nil @@file_loaded = false def self.instance @@instance ||= self.new end def self.file_loaded? !!@@file_loaded end def self.reload! @@instance = nil @@file_loaded = false self.instance.merge!(YAML.load_file(self.file_path)[Rails.env].symbolize_keys!.to_hash) self.set_middleware self end @@file_path = nil def self.file_path=(path) @@file_path = path end def self.file_path @@file_path || "#{Rails.root}/config/omniauth.yml" end def self.availables(&block) rtn = self.instance.delete_if{|key,conf| !(conf['key'] && conf['secret']) } rtn.each do |oauth_provider_symbol,conf| name = conf['name'] || oauth_provider_symbol block.call(name,conf,oauth_provider_symbol) end if block rtn end def self.request_path(name) "/auth/#{name}" end def self.callback_path(name) "/auth/#{name}/callback" end def self.auth_callback_as(name) "auth_callback_#{name}" end def self.auth_as(name) "auth_#{name}" end def self.set_middleware mw = Rails.application.config.middleware mw.delete OmniAuth::Builder mw.use OmniAuth::Builder do WeBridgeRailsEngineUsers::ProviderSettings.availables do |name, conf, oauth_provider_symbol| conf = conf.symbolize_keys key,secret = conf[:key], conf[:secret] conf.merge!( request_path: ProviderSettings.request_path(name), callback_path: ProviderSettings.callback_path(name)) provider oauth_provider_symbol, key, secret, conf.merge(key: nil, secret: nil, name: nil) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
we_bridge_rails_engine_users-0.1.2 | lib/we_bridge_rails_engine_users/provider_settings.rb |
we_bridge_rails_engine_users-0.1.0 | lib/we_bridge_rails_engine_users/provider_settings.rb |