module Configuration module Methods def pod_uri return @pod_uri unless @pod_uri.nil? url = environment.url.get url = "http://#{url}" unless url =~ /^(https?:\/\/)/ url << "/" unless url.end_with?("/") begin @pod_url = Addressable::URI.parse(url) rescue puts "WARNING: pod url #{url} is not a legal URI" end @pod_url end def bare_pod_uri pod_uri.authority.gsub('www.', '') end def configured_services return @configured_services unless @configured_services.nil? @configured_services = [] [:twitter, :tumblr, :facebook].each do |service| @configured_services << service if services.send(service).enable? end @configured_services end attr_writer :configured_services def secret_token return ENV['SECRET_TOKEN'] if ENV['SECRET_TOKEN'] $stderr.puts "FATAL: Running on Heroku with SECRET_TOKEN unset" $stderr.puts " Run heroku config:add SECRET_TOKEN=#{SecureRandom.hex(40)}" Process.exit(1) end def version_string return @version_string unless @version_string.nil? @version_string = version.number.to_s @version_string << "-p#{git_revision[0..7]}" if git_available? @version_string end def git_available? return @git_available unless @git_available.nil? if heroku? @git_available = false else `which git` `git status 2> /dev/null` if $?.success? @git_available = $?.success? end end def git_revision get_git_info if git_available? @git_revision end attr_writer :git_revision def git_update get_git_info if git_available? @git_update end attr_writer :git_update def rails_asset_id (git_revision || version)[0..8] end def get_redis_instance if redistogo_url.present? $stderr.puts "WARNING: using the REDISTOGO_URL environment variable is deprecated, please use REDIS_URL now." ENV['REDIS_URL'] = redistogo_url end redis_options = {} redis_url = ENV['REDIS_URL'] || environment.redis.get if ENV['RAILS_ENV']== 'integration2' redis_options = { :host => 'localhost', :port => 6380 } elsif redis_url.present? unless redis_url.start_with?("redis://") || redis_url.start_with?("unix:///") $stderr.puts "WARNING: Your redis url (#{redis_url}) doesn't start with redis:// or unix:///" end redis_options = { :url => redis_url } end Redis.new(redis_options.merge(:thread_safe => true)) end private def get_git_info return if git_info_present? || !git_available? git_cmd = `git log -1 --pretty="format:%H %ci"` if git_cmd =~ /^([\d\w]+?)\s(.+)$/ @git_revision = $1 @git_update = $2.strip end end def git_info_present? @git_revision || @git_update end end end