lib/exvo_helpers/helpers.rb in exvo_helpers-0.5.2 vs lib/exvo_helpers/helpers.rb in exvo_helpers-0.5.3

- old
+ new

@@ -3,24 +3,24 @@ module Helpers # Dynamically define class methods class << self - %w(auth cdn cfs desktop themes blog contacts inbox music pics preview store).each do |service| + %w(auth budget cdn cfs desktop themes blog contacts inbox music pics preview store).each do |service| # def self.cdn_uri # protocol = 'http://' - # protocol = 'https://' if service == "auth" && auth_require_ssl + # protocol = 'https://' if (service == "auth" && auth_require_ssl) || (service == "budget" && budget_require_ssl) # protocol = '//' if ["cdn", "cfs", "themes"].include?(service) && env.to_sym == :production # suffix = '/blog' if service == "blog" # protocol + cdn_host + suffix.to_s # end define_method "#{service}_uri" do protocol = 'http://' - # explicit https for auth - protocol = 'https://' if service == "auth" && send(:auth_require_ssl) + # explicit https for auth & budget + protocol = 'https://' if (service == "auth" && send(:auth_require_ssl)) || (service == "budget" && send(:budget_require_ssl)) # special link starting with '//' in production so that the webserver can choose between HTTP and HTTPS # but only for those apps/services that have proper SSL support (i.e. valid certificates) protocol = '//' if ["cdn", "cfs", "themes"].include?(service) && env.to_sym == :production @@ -167,10 +167,47 @@ end end + # BUDGET + + # Dynamically define class methods + class << self + + %w(require_ssl).each do |option| + + # def self.budget_require_ssl + # return @@budget_require_ssl if defined?(@@budget_require_ssl) && !@@budget_require_ssl.nil? + # value = true if ENV["BUDGET_REQUIRE_SSL"] =~ /true/i + # value = false if ENV["BUDGET_REQUIRE_SSL"] =~ /false/i + # value = default_opts[env.to_sym]["budget_require_ssl".to_sym] if value.nil? + # @@budget_require_ssl = value + # end + define_method "budget_#{option}" do + if class_variable_defined?("@@budget_#{option}") and !class_variable_get("@@budget_#{option}").nil? + class_variable_get("@@budget_#{option}") + else + value = true if ENV["BUDGET_#{option.upcase}"] =~ /true/i + value = false if ENV["BUDGET_#{option.upcase}"] =~ /false/i + value = default_opts[env.to_sym]["budget_#{option}".to_sym] if value.nil? + class_variable_set("@@budget_#{option}", value) + end + end + + # def self.budget_require_ssl=(debug) + # @@budget_require_ssl = debug + # end + define_method "budget_#{option}=" do |value| + class_variable_set("@@budget_#{option}", value) + end + + end + + end + + # ENV # by default fall back to production; this way the omniauth-exvo's gem specs can pass # (they depend on this gem and on env, but nor Rails nor Merb is defined there) def self.env @@ -192,10 +229,12 @@ :production => { :auth_debug => false, :auth_host => 'auth.exvo.com', :auth_require_ssl => true, :sso_cookie_domain => 'exvo.com', + :budget_host => 'budget.exvo.com', + :budget_require_ssl => true, :cdn_host => 'd33gjlr95u9pgf.cloudfront.net', # cloudfront.net so we can use https (cdn.exvo.com via https does not work properly) :cfs_host => 'cfs.exvo.com', :desktop_host => 'home.exvo.com', :themes_host => 'themes.exvo.com', :blog_host => 'www.exvo.com', @@ -209,10 +248,12 @@ :staging => { :auth_debug => false, :auth_host => 'auth.exvo.co', :auth_require_ssl => false, :sso_cookie_domain => 'exvo.co', + :budget_host => 'budget.exvo.co', + :budget_require_ssl => false, :cdn_host => 'd1by559a994699.cloudfront.net', :cfs_host => 'cfs.exvo.co', :desktop_host => 'home.exvo.co', :themes_host => 'themes.exvo.co', :blog_host => 'www.exvo.co', @@ -226,10 +267,12 @@ :development => { :auth_debug => false, :auth_host => 'auth.exvo.local', :auth_require_ssl => false, :sso_cookie_domain => 'exvo.local', + :budget_host => 'budget.exvo.local', + :budget_require_ssl => false, :cdn_host => 'home.exvo.local', :cfs_host => 'cfs.exvo.local', :desktop_host => 'home.exvo.local', :themes_host => 'themes.exvo.local', :blog_host => 'www.exvo.local', @@ -243,9 +286,11 @@ :test => { :auth_debug => false, :auth_host => 'auth.exvo.local', :auth_require_ssl => false, :sso_cookie_domain => 'exvo.local', + :budget_host => 'budget.exvo.local', + :budget_require_ssl => false, :cdn_host => 'home.exvo.local', :cfs_host => 'cfs.exvo.local', :desktop_host => 'home.exvo.local', :themes_host => 'themes.exvo.local', :blog_host => 'www.exvo.local',