From 5973843611294ab5089d20556ba14c5cb7996f5b Mon Sep 17 00:00:00 2001 From: "James A. Rosen" Date: Sat, 12 Jun 2010 22:43:07 -0400 Subject: [PATCH] used Kernel#autoload to reduce memory footprint when only requiring parts of OmniAuth --- oa-basic/lib/omniauth/basic.rb | 11 +++++++--- oa-basic/lib/omniauth/strategies/basecamp.rb | 4 +++- oa-basic/lib/omniauth/strategies/campfire.rb | 4 +++- oa-basic/lib/omniauth/strategies/gowalla.rb | 4 +++- .../lib/omniauth/strategies/http_basic.rb | 2 +- oa-core/lib/omniauth/builder.rb | 2 ++ oa-core/lib/omniauth/core.rb | 12 +++++++---- oa-core/lib/omniauth/form.rb | 2 ++ oa-core/lib/omniauth/password.rb | 2 -- oa-core/lib/omniauth/strategies/password.rb | 2 ++ oa-core/lib/omniauth/strategy.rb | 4 ++++ .../spec/omniauth/strategies/password_spec.rb | 7 ++++--- oa-oauth/lib/omniauth/oauth.rb | 21 +++++++++++-------- oa-oauth/lib/omniauth/strategies/facebook.rb | 3 ++- oa-oauth/lib/omniauth/strategies/github.rb | 3 ++- oa-oauth/lib/omniauth/strategies/linked_in.rb | 5 ++--- oa-oauth/lib/omniauth/strategies/oauth.rb | 6 ++++-- oa-oauth/lib/omniauth/strategies/oauth2.rb | 4 +++- oa-oauth/lib/omniauth/strategies/twitter.rb | 5 ++--- oa-openid/lib/omniauth/openid.rb | 8 ++++++- oa-openid/lib/omniauth/strategies/google.rb | 4 +++- oa-openid/lib/omniauth/strategies/open_id.rb | 3 ++- omniauth/lib/omniauth.rb | 8 ++++--- 23 files changed, 84 insertions(+), 42 deletions(-) delete mode 100644 oa-core/lib/omniauth/password.rb diff --git a/oa-basic/lib/omniauth/basic.rb b/oa-basic/lib/omniauth/basic.rb index 58b1d36..5b25006 100644 --- a/oa-basic/lib/omniauth/basic.rb +++ b/oa-basic/lib/omniauth/basic.rb @@ -1,5 +1,10 @@ require 'omniauth/core' -require 'omniauth/strategies/http_basic' -require 'omniauth/strategies/campfire' -require 'omniauth/strategies/basecamp' \ No newline at end of file +module OmniAuth + module Strategies + autoload :HttpBasic, 'omniauth/strategies/http_basic' + autoload :Basecamp, 'omniauth/strategies/basecamp' + autoload :Campfire, 'omniauth/strategies/campfire' + # autoload :Gowalla, 'omniauth/strategies/gowalla' + end +end diff --git a/oa-basic/lib/omniauth/strategies/basecamp.rb b/oa-basic/lib/omniauth/strategies/basecamp.rb index c10eab2..3db78e3 100644 --- a/oa-basic/lib/omniauth/strategies/basecamp.rb +++ b/oa-basic/lib/omniauth/strategies/basecamp.rb @@ -1,3 +1,5 @@ +require 'omniauth/basic' + module OmniAuth module Strategies class Basecamp < HttpBasic @@ -50,4 +52,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-basic/lib/omniauth/strategies/campfire.rb b/oa-basic/lib/omniauth/strategies/campfire.rb index be1554b..60b0cfd 100644 --- a/oa-basic/lib/omniauth/strategies/campfire.rb +++ b/oa-basic/lib/omniauth/strategies/campfire.rb @@ -1,3 +1,5 @@ +require 'omniauth/basic' + module OmniAuth module Strategies class Campfire < HttpBasic @@ -42,4 +44,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-basic/lib/omniauth/strategies/gowalla.rb b/oa-basic/lib/omniauth/strategies/gowalla.rb index 9ec5a07..bf85612 100644 --- a/oa-basic/lib/omniauth/strategies/gowalla.rb +++ b/oa-basic/lib/omniauth/strategies/gowalla.rb @@ -2,6 +2,8 @@ # so this won't actually work at all it # turns out. +# require 'omniauth/basic' +# # module OmniAuth # module Strategies # class Gowalla < OmniAuth::Strategies::HttpBasic #:nodoc: @@ -14,4 +16,4 @@ # end # end # end -# end \ No newline at end of file +# end diff --git a/oa-basic/lib/omniauth/strategies/http_basic.rb b/oa-basic/lib/omniauth/strategies/http_basic.rb index 11f4e57..d079d2a 100644 --- a/oa-basic/lib/omniauth/strategies/http_basic.rb +++ b/oa-basic/lib/omniauth/strategies/http_basic.rb @@ -1,4 +1,5 @@ require 'restclient' +require 'omniauth/basic' module OmniAuth module Strategies @@ -53,4 +54,3 @@ module OmniAuth end end end - \ No newline at end of file diff --git a/oa-core/lib/omniauth/builder.rb b/oa-core/lib/omniauth/builder.rb index a1e1d4d..89907b4 100644 --- a/oa-core/lib/omniauth/builder.rb +++ b/oa-core/lib/omniauth/builder.rb @@ -1,3 +1,5 @@ +require 'omniauth/core' + module OmniAuth class Builder < Rack::Builder def initialize(app, &block) diff --git a/oa-core/lib/omniauth/core.rb b/oa-core/lib/omniauth/core.rb index f9aba85..aa10a75 100644 --- a/oa-core/lib/omniauth/core.rb +++ b/oa-core/lib/omniauth/core.rb @@ -1,9 +1,16 @@ require 'rack' require 'singleton' - require 'omniauth/form' module OmniAuth + + autoload :Builder, 'omniauth/builder' + autoload :Strategy, 'omniauth/strategy' + + module Strategies + autoload :Password, 'omniauth/strategies/password' + end + class Configuration include Singleton @@ -85,6 +92,3 @@ module OmniAuth end end end - -require 'omniauth/builder' -require 'omniauth/strategy' \ No newline at end of file diff --git a/oa-core/lib/omniauth/form.rb b/oa-core/lib/omniauth/form.rb index 30d1954..ce13056 100644 --- a/oa-core/lib/omniauth/form.rb +++ b/oa-core/lib/omniauth/form.rb @@ -1,3 +1,5 @@ +require 'omniauth/core' + module OmniAuth class Form DEFAULT_CSS = <<-CSS diff --git a/oa-core/lib/omniauth/password.rb b/oa-core/lib/omniauth/password.rb deleted file mode 100644 index b3d4a1d..0000000 --- a/oa-core/lib/omniauth/password.rb +++ /dev/null @@ -1,2 +0,0 @@ -require 'omniauth/core' -require 'omniauth/strategies/password' \ No newline at end of file diff --git a/oa-core/lib/omniauth/strategies/password.rb b/oa-core/lib/omniauth/strategies/password.rb index 7b430a0..b940d3d 100644 --- a/oa-core/lib/omniauth/strategies/password.rb +++ b/oa-core/lib/omniauth/strategies/password.rb @@ -1,4 +1,6 @@ require 'digest/sha1' +require 'omniauth/core' + module OmniAuth module Strategies class Password diff --git a/oa-core/lib/omniauth/strategy.rb b/oa-core/lib/omniauth/strategy.rb index 582870d..278190a 100644 --- a/oa-core/lib/omniauth/strategy.rb +++ b/oa-core/lib/omniauth/strategy.rb @@ -1,5 +1,9 @@ +require 'omniauth/core' + module OmniAuth + module Strategy + def self.included(base) base.class_eval do attr_reader :app, :name, :env diff --git a/oa-core/spec/omniauth/strategies/password_spec.rb b/oa-core/spec/omniauth/strategies/password_spec.rb index 0519db0..44015a7 100644 --- a/oa-core/spec/omniauth/strategies/password_spec.rb +++ b/oa-core/spec/omniauth/strategies/password_spec.rb @@ -1,6 +1,7 @@ require File.dirname(__FILE__) + '/../../spec_helper' -require 'omniauth/password' describe OmniAuth::Strategies::Password do - -end \ No newline at end of file + it 'should exist' do + # do nothing + end +end diff --git a/oa-oauth/lib/omniauth/oauth.rb b/oa-oauth/lib/omniauth/oauth.rb index 9a3f8dd..1f761cc 100644 --- a/oa-oauth/lib/omniauth/oauth.rb +++ b/oa-oauth/lib/omniauth/oauth.rb @@ -1,10 +1,13 @@ -require 'oauth' -require 'oauth2' - require 'omniauth/core' -require 'omniauth/strategies/oauth' -require 'omniauth/strategies/twitter' -require 'omniauth/strategies/linked_in' -require 'omniauth/strategies/oauth2' -require 'omniauth/strategies/facebook' -require 'omniauth/strategies/github' \ No newline at end of file + +module OmniAuth + module Strategies + autoload :OAuth, 'omniauth/strategies/oauth' + autoload :OAuth2, 'omniauth/strategies/oauth2' + + autoload :Twitter, 'omniauth/strategies/twitter' + autoload :LinkedIn, 'omniauth/strategies/linked_in' + autoload :Facebook, 'omniauth/strategies/facebook' + autoload :GitHub, 'omniauth/strategies/github' + end +end diff --git a/oa-oauth/lib/omniauth/strategies/facebook.rb b/oa-oauth/lib/omniauth/strategies/facebook.rb index 1c4a2e0..bbb53f8 100644 --- a/oa-oauth/lib/omniauth/strategies/facebook.rb +++ b/oa-oauth/lib/omniauth/strategies/facebook.rb @@ -1,4 +1,5 @@ require 'json' +require 'omniauth/oauth' module OmniAuth module Strategies @@ -50,4 +51,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-oauth/lib/omniauth/strategies/github.rb b/oa-oauth/lib/omniauth/strategies/github.rb index 556aaa4..740aa3e 100644 --- a/oa-oauth/lib/omniauth/strategies/github.rb +++ b/oa-oauth/lib/omniauth/strategies/github.rb @@ -1,4 +1,5 @@ require 'json' +require 'omniauth/oauth' module OmniAuth module Strategies @@ -35,4 +36,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-oauth/lib/omniauth/strategies/linked_in.rb b/oa-oauth/lib/omniauth/strategies/linked_in.rb index 42692dd..7c230ac 100644 --- a/oa-oauth/lib/omniauth/strategies/linked_in.rb +++ b/oa-oauth/lib/omniauth/strategies/linked_in.rb @@ -1,6 +1,5 @@ -require 'omniauth/core' -require 'omniauth/strategies/oauth' require 'nokogiri' +require 'omniauth/oauth' module OmniAuth module Strategies @@ -44,4 +43,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-oauth/lib/omniauth/strategies/oauth.rb b/oa-oauth/lib/omniauth/strategies/oauth.rb index decdbb7..08b5622 100644 --- a/oa-oauth/lib/omniauth/strategies/oauth.rb +++ b/oa-oauth/lib/omniauth/strategies/oauth.rb @@ -1,10 +1,12 @@ +require 'oauth' +require 'omniauth/oauth' + module OmniAuth module Strategies class OAuth include OmniAuth::Strategy def initialize(app, name, consumer_key, consumer_secret, options = {}) - require 'oauth' super @consumer = ::OAuth::Consumer.new(consumer_key, consumer_secret, options) end @@ -45,4 +47,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-oauth/lib/omniauth/strategies/oauth2.rb b/oa-oauth/lib/omniauth/strategies/oauth2.rb index 20a3424..a796e66 100644 --- a/oa-oauth/lib/omniauth/strategies/oauth2.rb +++ b/oa-oauth/lib/omniauth/strategies/oauth2.rb @@ -1,5 +1,7 @@ require 'cgi' require 'uri' +require 'oauth2' +require 'omniauth/oauth' module OmniAuth module Strategies @@ -35,4 +37,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-oauth/lib/omniauth/strategies/twitter.rb b/oa-oauth/lib/omniauth/strategies/twitter.rb index 55969ce..9025ee6 100644 --- a/oa-oauth/lib/omniauth/strategies/twitter.rb +++ b/oa-oauth/lib/omniauth/strategies/twitter.rb @@ -1,6 +1,5 @@ -require 'omniauth/core' -require 'omniauth/strategies/oauth' require 'json' +require 'omniauth/oauth' module OmniAuth module Strategies @@ -45,4 +44,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/oa-openid/lib/omniauth/openid.rb b/oa-openid/lib/omniauth/openid.rb index a2dbe7e..0dde24c 100644 --- a/oa-openid/lib/omniauth/openid.rb +++ b/oa-openid/lib/omniauth/openid.rb @@ -1,2 +1,8 @@ require 'omniauth/core' -require 'omniauth/strategies/open_id' \ No newline at end of file + +module OmniAuth + module Strategies + autoload :OpenID, 'omniauth/strategies/open_id' + autoload :Google, 'omniauth/strategies/google' + end +end diff --git a/oa-openid/lib/omniauth/strategies/google.rb b/oa-openid/lib/omniauth/strategies/google.rb index 2bba2c7..8dc8789 100644 --- a/oa-openid/lib/omniauth/strategies/google.rb +++ b/oa-openid/lib/omniauth/strategies/google.rb @@ -1,7 +1,9 @@ +require 'omniauth/openid' + module OmniAuth module Strategies class Google < OmniAuth::Stratgies::OpenID def identifier; 'https://www.google.com/accounts/o8/id' end end end -end \ No newline at end of file +end diff --git a/oa-openid/lib/omniauth/strategies/open_id.rb b/oa-openid/lib/omniauth/strategies/open_id.rb index 1e7bf10..dbe138b 100644 --- a/oa-openid/lib/omniauth/strategies/open_id.rb +++ b/oa-openid/lib/omniauth/strategies/open_id.rb @@ -1,4 +1,5 @@ require 'rack/openid' +require 'omniauth/openid' module OmniAuth module Strategies @@ -120,4 +121,4 @@ module OmniAuth end end end -end \ No newline at end of file +end diff --git a/omniauth/lib/omniauth.rb b/omniauth/lib/omniauth.rb index 3c25718..b4a0ed5 100644 --- a/omniauth/lib/omniauth.rb +++ b/omniauth/lib/omniauth.rb @@ -1,5 +1,7 @@ require 'omniauth/core' -%w(password oauth basic openid).each do |s| - require "omniauth/#{s}" -end \ No newline at end of file +module OmniAuth + autoload :OAuth, 'omniauth/oauth' + autoload :Basic, 'omniauth/basic' + autoload :OpenID, 'omniauth/openid' +end