Sha256: ab204aed33254033d911a3d3469cb5b68e85891916feb539ddc607331d8f8bd7

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

require 'rack'
require 'singleton'

module OmniAuth
  class Configuration
    include Singleton
    
    def initialize
      @path_prefix = '/auth'
      @on_failure = Proc.new do |env, message_key|
        new_path = "#{OmniAuth.config.path_prefix}/failure?message=#{message_key}"
        [302, {'Location' => "#{new_path}"}, []]
      end
    end
    
    def on_failure(&block)
      if block_given?
        @on_failure = block
      else
        @on_failure
      end
    end
    
    attr_accessor :path_prefix
  end
  
  def self.config
    Configuration.instance
  end
  
  def self.configure
    yield config
  end
  
  module Utils
    extend self
    
    def deep_merge(hash, other_hash)
      target = hash.dup
    
      other_hash.keys.each do |key|
        if other_hash[key].is_a? ::Hash and hash[key].is_a? ::Hash
          target[key] = deep_merge(target[key],other_hash[key])
          next
        end
      
        target[key] = other_hash[key]
      end
    
      target
    end
    
    CAMELIZE_SPECIAL = {
      'oauth' => 'OAuth',
      'oauth2' => 'OAuth2',
      'openid' => 'OpenID',
      'open_id' => 'OpenID',
      'github' => 'GitHub'
    }
    
    def camelize(word, first_letter_in_uppercase = true)
      return CAMELIZE_SPECIAL[word.to_s] if CAMELIZE_SPECIAL[word.to_s]
      
      if first_letter_in_uppercase
        word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
      else
        word.first + camelize(word)[1..-1]
      end
    end
  end
end

require 'omniauth/builder'
require 'omniauth/strategy'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
oa-core-0.0.1 lib/omniauth/core.rb