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',