class Platform::Config

Public Class Methods

admin_helpers() click to toggle source
# File lib/platform/config.rb, line 312
def self.admin_helpers
  return [] unless site_info[:admin_helpers]
  @admin_helpers ||= site_info[:admin_helpers].collect{|helper| helper.to_sym}
end
admin_layout() click to toggle source
# File lib/platform/config.rb, line 275
def self.admin_layout
  site_info[:admin_layout]
end
admin_user?(user = current_user) click to toggle source
# File lib/platform/config.rb, line 424
def self.admin_user?(user = current_user)
  user.send(site_user_info[:methods][:admin])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} admin flag: #{ex.to_s}")
  false
end
after_filters() click to toggle source
# File lib/platform/config.rb, line 327
def self.after_filters
  return [] unless site_info[:after_filters]
  @after_filters ||= site_info[:after_filters].collect{|filter| filter.to_sym}
end
api() click to toggle source
# File lib/platform/config.rb, line 216
def self.api
  config[:API]
end
api_allow_public?() click to toggle source
# File lib/platform/config.rb, line 556
def self.api_allow_public?
  api[:allow_public]
end
api_base_url() click to toggle source
# File lib/platform/config.rb, line 576
def self.api_base_url
  api[:base_url]
end
api_config_path() click to toggle source
# File lib/platform/config.rb, line 540
def self.api_config_path
  api[:config_path]
end
api_cookies_enabled?() click to toggle source
# File lib/platform/config.rb, line 552
def self.api_cookies_enabled?
  api[:cookies_enabled]
end
api_default_version() click to toggle source
# File lib/platform/config.rb, line 592
def self.api_default_version
  api[:default_version]
end
api_explorer_app() click to toggle source
# File lib/platform/config.rb, line 600
def self.api_explorer_app
  return if api_explorer_app_id.blank?
  @api_explorer_app ||= Platform::Application.find_by_id(api_explorer_app_id)
end
api_explorer_app?() click to toggle source
# File lib/platform/config.rb, line 605
def self.api_explorer_app?
  !api_explorer_app_id.blank?
end
api_explorer_app_id() click to toggle source
# File lib/platform/config.rb, line 596
def self.api_explorer_app_id
  config[:api_explorer_app_id]
end
api_explorer_groups(api_version = api_default_version) click to toggle source
# File lib/platform/config.rb, line 660
def self.api_explorer_groups(api_version = api_default_version)
  api[:explorer_groups][api_version]
end
api_logging_enabled?() click to toggle source
# File lib/platform/config.rb, line 544
def self.api_logging_enabled?
  api[:logging_enabled]
end
api_max_models() click to toggle source
# File lib/platform/config.rb, line 560
def self.api_max_models
  api[:max_models]
end
api_proxies_path() click to toggle source
# File lib/platform/config.rb, line 609
def self.api_proxies_path
  api[:proxies_path]
end
api_reference(api_version = api_default_version) click to toggle source

API References

# File lib/platform/config.rb, line 627
def self.api_reference(api_version = api_default_version)
  @api_reference ||= begin
    ref = HashWithIndifferentAccess.new
    api_supported_versions.each do |version|
      ref[version] = {}
      path = "#{root}/#{api[:config_path]}/#{version}"
      files = Dir.glob("#{path}/*.yml")
      files.each do |file|
        ref[version].merge!(YAML.load_file(file))
      end
    end  
    ref.freeze
  end
  @api_reference[api_version]
end
api_reference_by_path(api_version, path) click to toggle source
# File lib/platform/config.rb, line 643
def self.api_reference_by_path(api_version,  path)
  @api_reference_by_path ||= {}
  @api_reference_by_path[api_version] ||= begin
    api = api_reference(api_version)
    by_path = {}
    api.each do |key, defs|
      by_path[defs["path"]] = api[key]
      (defs[:actions] || []).each do |act_key, acts|
        path = acts["path"] || "#{defs["path"]}/#{act_key}"
        by_path[path] = defs[:actions][act_key]
      end
    end
    by_path
  end
  @api_reference_by_path[api_version][path]
end
api_request_limit() click to toggle source
# File lib/platform/config.rb, line 548
def self.api_request_limit
  api[:request_limit]
end
api_request_window() click to toggle source
# File lib/platform/config.rb, line 564
def self.api_request_window
  api[:request_window]
end
api_scheme() click to toggle source
# File lib/platform/config.rb, line 580
def self.api_scheme
  api[:scheme]
end
api_supported_version_options() click to toggle source
# File lib/platform/config.rb, line 588
def self.api_supported_version_options
  @api_supported_version_options ||= api[:supported_versions].collect{|v| ["v #{v}", v]}
end
api_supported_versions() click to toggle source
# File lib/platform/config.rb, line 584
def self.api_supported_versions
  api[:supported_versions]
end
api_token_lifetime() click to toggle source
# File lib/platform/config.rb, line 568
def self.api_token_lifetime
  api[:token_lifetime]
end
before_filters() click to toggle source
# File lib/platform/config.rb, line 322
def self.before_filters
  return [] unless site_info[:before_filters]
  @before_filters ||= site_info[:before_filters].collect{|filter| filter.to_sym}
end
cache_adapter() click to toggle source
# File lib/platform/config.rb, line 228
def self.cache_adapter
  caching[:adapter]
end
cache_store() click to toggle source
# File lib/platform/config.rb, line 232
def self.cache_store
  caching[:store]
end
cache_version() click to toggle source
# File lib/platform/config.rb, line 236
def self.cache_version
  caching[:version]
end
caching() click to toggle source

Config Sections

# File lib/platform/config.rb, line 204
def self.caching
  config[:caching]
end
config() click to toggle source
# File lib/platform/config.rb, line 153
def self.config
  @config ||= load_yml("/config/platform/config.yml")
end
create_media(file) click to toggle source
# File lib/platform/config.rb, line 469
def self.create_media(file)
  media = site_media_class.constantize.create
  media.send(site_media_write_method, file)
  media
rescue Exception => ex
  pp ex
  Platform::Logger.error("Failed to create media: #{ex.to_s}")
  nil
end
current_application() click to toggle source
# File lib/platform/config.rb, line 41
def self.current_application
  Thread.current[:platform_current_application]
end
current_application=(app) click to toggle source
# File lib/platform/config.rb, line 45
def self.current_application=(app)
  Thread.current[:platform_current_application] = app
end
current_developer() click to toggle source
# File lib/platform/config.rb, line 37
def self.current_developer
  Thread.current[:platform_current_developer] 
end
current_user() click to toggle source
# File lib/platform/config.rb, line 33
def self.current_user
  Thread.current[:platform_current_user]
end
current_user_is_admin?() click to toggle source
# File lib/platform/config.rb, line 431
def self.current_user_is_admin?
  admin_user?
end
current_user_is_developer?() click to toggle source
# File lib/platform/config.rb, line 49
def self.current_user_is_developer?
  Thread.current[:platform_current_developer] != nil
end
current_user_is_guest?() click to toggle source
# File lib/platform/config.rb, line 443
def self.current_user_is_guest?
  guest_user?
end
current_user_method() click to toggle source
# File lib/platform/config.rb, line 340
def self.current_user_method
  site_user_info[:current_user_method]
end
default_app_icon() click to toggle source
# File lib/platform/config.rb, line 193
def self.default_app_icon
  "/assets/platform/default_app_icon.gif"
end
default_applications() click to toggle source
# File lib/platform/config.rb, line 130
def self.default_applications
  @default_applications ||= load_yml("/config/platform/data/default_applications.yml")
end
default_categories() click to toggle source
# File lib/platform/config.rb, line 134
def self.default_categories
  @default_categories ||= load_yml("/config/platform/data/default_categories.yml")
end
default_url() click to toggle source
# File lib/platform/config.rb, line 267
def self.default_url
  site_info[:default_url]
end
developer_agreement_path() click to toggle source
# File lib/platform/config.rb, line 181
def self.developer_agreement_path
  config[:developer_agreement_path]
end
disabled?() click to toggle source
# File lib/platform/config.rb, line 161
def self.disabled?
  not enabled?
end
enable_api?() click to toggle source

API

# File lib/platform/config.rb, line 536
def self.enable_api?
  api[:enabled]
end
enable_api_verification?() click to toggle source
# File lib/platform/config.rb, line 189
def self.enable_api_verification?
  config[:enable_api_verification]
end
enable_app_directory?() click to toggle source
# File lib/platform/config.rb, line 165
def self.enable_app_directory?
  config[:enable_app_directory]
end
enable_app_statistics?() click to toggle source
# File lib/platform/config.rb, line 185
def self.enable_app_statistics?
  config[:enable_app_statistics]
end
enable_caching?() click to toggle source

Caching

# File lib/platform/config.rb, line 224
def self.enable_caching?
  caching[:enabled]
end
enable_developer_agreement?() click to toggle source
# File lib/platform/config.rb, line 177
def self.enable_developer_agreement?
  config[:enable_developer_agreement]
end
enable_embedded_applications?() click to toggle source
# File lib/platform/config.rb, line 169
def self.enable_embedded_applications?
  config[:enable_embedded_applications]
end
enable_logger?() click to toggle source

Logger

# File lib/platform/config.rb, line 244
def self.enable_logger?
  logger[:enabled]
end
enable_mobile_applications?() click to toggle source
# File lib/platform/config.rb, line 173
def self.enable_mobile_applications?
  config[:enable_mobile_applications]
end
enabled?() click to toggle source
# File lib/platform/config.rb, line 157
def self.enabled?
  config[:enable_platform] 
end
env() click to toggle source
# File lib/platform/config.rb, line 142
def self.env
  Rails.env
end
features() click to toggle source
# File lib/platform/config.rb, line 670
def self.features
  @features ||= begin
    defs = load_yml("/config/platform/site/features.yml")
    feats = []
    defs[:enabled_features].each do |key|
      defs[key][:key] = key
      feats << defs[key] 
    end
    feats
  end
end
guest_user?(user = current_user) click to toggle source
# File lib/platform/config.rb, line 435
def self.guest_user?(user = current_user)
  return true unless user
  user.send(site_user_info[:methods][:guest])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} guest flag: #{ex.to_s}")
  true
end
helpers() click to toggle source
# File lib/platform/config.rb, line 307
def self.helpers
  return [] unless site_info[:helpers]
  @tr8n_helpers ||= site_info[:helpers].collect{|helper| helper.to_sym}
end
icon_url(media) click to toggle source
# File lib/platform/config.rb, line 486
def self.icon_url(media)
  eval("media.#{site_media_info[:icon_url_method]}")
rescue Exception => ex
  Platform::Logger.error("Failed to fetch icon url: #{ex.to_s}")
  default_app_icon
end
init(site_current_user, current_application = nil) click to toggle source
# File lib/platform/config.rb, line 27
def self.init(site_current_user, current_application = nil)
  Thread.current[:platform_current_user] = site_current_user
  Thread.current[:platform_current_developer] = Platform::Developer.for(site_current_user)
  Thread.current[:platform_current_application] = current_application
end
init_categories(parent, categories) click to toggle source
# File lib/platform/config.rb, line 123
def self.init_categories(parent, categories) 
  categories.each do |keyword, info|
    cat = Platform::Category.create(:parent => parent, :keyword => keyword, :name => info[:name], :position => info[:position])
    init_categories(cat, info[:categories]) if info[:categories]
  end
end
init_default_applications() click to toggle source
# File lib/platform/config.rb, line 105
def self.init_default_applications
  puts "Initializing default applications..."
  unless system_developer
    puts "Cannot initialize default application because system user id is not specified in the config."
    return
  end
  
  default_applications.each do |keyword, description|
    app = Platform::Application.create(description.merge(:developer => system_developer))
    puts "Initialized #{app.name}."
  end    
end
init_default_categories() click to toggle source
# File lib/platform/config.rb, line 118
def self.init_default_categories
  puts "Initializing default categories..."
  init_categories(Platform::Category.root, default_categories)
end
load_proxies() click to toggle source
# File lib/platform/config.rb, line 613
def self.load_proxies
  Dir["#{root}/#{api_proxies_path}/*_proxy_*.rb"].each do |file|
    require_or_load file
  end
end
load_yml(file_path, for_env = env) click to toggle source
# File lib/platform/config.rb, line 146
def self.load_yml(file_path, for_env = env)
  yml_path = "#{root}#{file_path}"
  yml = YAML.load_file(yml_path)
  yml = yml['defaults'].rmerge(yml[for_env] || {}) unless for_env.nil?
  HashWithIndifferentAccess.new(yml)
end
log_path() click to toggle source
# File lib/platform/config.rb, line 248
def self.log_path
  logger[:log_path]
end
logger() click to toggle source
# File lib/platform/config.rb, line 208
def self.logger
  config[:logger]
end
login_url(params = {}) click to toggle source
# File lib/platform/config.rb, line 348
def self.login_url(params = {})
  site_info[:login_url] + (site_info[:logout_url].index('?') ? ':' : '?') + params.collect{|n,v| "#{n}=#{CGI.escape(v.to_s)}"}.join('&') 
end
logo_url(media) click to toggle source
# File lib/platform/config.rb, line 479
def self.logo_url(media)
  eval("media.#{site_media_info[:logo_url_method]}")
rescue Exception => ex
  Platform::Logger.error("Failed to fetch logo url: #{ex.to_s}")
  default_app_logo
end
logout_method() click to toggle source
# File lib/platform/config.rb, line 344
def self.logout_method
  site_user_info[:logout_method]
end
logout_url(params = {}) click to toggle source
# File lib/platform/config.rb, line 352
def self.logout_url(params = {})
  site_info[:logout_url] + (site_info[:logout_url].index('?') ? ':' : '?') + params.collect{|n,v| "#{n}=#{CGI.escape(v.to_s)}"}.join('&') 
end
media_directory() click to toggle source
# File lib/platform/config.rb, line 299
def self.media_directory
  site_info[:media_directory]
end
media_path() click to toggle source
# File lib/platform/config.rb, line 303
def self.media_path
  "#{root}/public#{media_directory}"
end
models() click to toggle source
# File lib/platform/config.rb, line 59
def self.models
  @models ||= begin 
    mdls = [
        Platform::ApplicationDeveloper, Platform::ApplicationPermission, Platform::ApplicationUser,
        Platform::ApplicationCategory, Platform::Category, 
        Platform::ForumMessage, Platform::ForumTopic,
        Platform::Permission, Platform::Rating,
        Platform::Developer, Platform::Application, 
        Platform::Oauth::OauthToken, Platform::Oauth::AccessToken, 
        Platform::Oauth::RequestToken, Platform::Oauth::RefreshToken,
        Platform::Media::Media, Platform::Media::Image,
        Platform::ApplicationLog, Platform::RollupLog, 
        Platform::ApplicationMetric, Platform::DailyApplicationMetric, 
        Platform::WeeklyApplicationMetric, Platform::MonthlyApplicationMetric, 
        Platform::TotalApplicationMetric, Platform::ApplicationUsageMetric,
        Platform::LoggedException
    ]
  
    if user_class_name == "Platform::PlatformUser" # used for stand-alone deployment only
      mdls << [Platform::PlatformUser, Platform::PlatformAdmin] 
    end  
  
    mdls.flatten
  end
end
oauth_desktop_layout() click to toggle source
# File lib/platform/config.rb, line 295
def self.oauth_desktop_layout
  site_info[:oauth_desktop_layout]
end
oauth_fluid_layout() click to toggle source
# File lib/platform/config.rb, line 283
def self.oauth_fluid_layout
  site_info[:oauth_fluid_layout]
end
oauth_mobile_layout() click to toggle source
# File lib/platform/config.rb, line 291
def self.oauth_mobile_layout
  site_info[:oauth_mobile_layout]
end
oauth_popup_layout() click to toggle source
# File lib/platform/config.rb, line 287
def self.oauth_popup_layout
  site_info[:oauth_popup_layout]
end
oauth_web_layout() click to toggle source
# File lib/platform/config.rb, line 279
def self.oauth_web_layout
  site_info[:oauth_web_layout]
end
proxies() click to toggle source
# File lib/platform/config.rb, line 619
def self.proxies
  @proxies ||= {}
end
reset!() click to toggle source
# File lib/platform/config.rb, line 53
def self.reset!
  Thread.current[:platform_current_user] = nil
  Thread.current[:platform_current_developer] = nil
  Thread.current[:platform_current_application] = nil
end
reset_all!() click to toggle source
# File lib/platform/config.rb, line 85
def self.reset_all!
  models.each do |cls|
    puts ">> Resetting #{cls.name}..."
    cls.delete_all
  end

  init_default_categories

  puts "Done."
end
root() click to toggle source
# File lib/platform/config.rb, line 138
def self.root
  Rails.root
end
searched_apps_per_page() click to toggle source
# File lib/platform/config.rb, line 529
def self.searched_apps_per_page
  15
end
searched_apps_title() click to toggle source
# File lib/platform/config.rb, line 525
def self.searched_apps_title
  "Search Results"
end
silhouette_image(user = current_user) click to toggle source
# File lib/platform/config.rb, line 666
def self.silhouette_image(user = current_user)
  "/assets/platform/photo_silhouette.gif"
end
site_base_url() click to toggle source
# File lib/platform/config.rb, line 263
def self.site_base_url
  site_info[:base_url]
end
site_info() click to toggle source
# File lib/platform/config.rb, line 212
def self.site_info
  config[:site_info]
end
site_layout() click to toggle source
# File lib/platform/config.rb, line 271
def self.site_layout
  site_info[:platform_layout]
end
site_logo_url() click to toggle source
# File lib/platform/config.rb, line 259
def self.site_logo_url
  site_info[:logo_url] 
end
site_media_class() click to toggle source
# File lib/platform/config.rb, line 460
def self.site_media_class
  return "Platform::Media::Image" unless site_media_enabled?
  site_media_info[:class_name]
end
site_media_enabled?() click to toggle source
# File lib/platform/config.rb, line 456
def self.site_media_enabled?
  site_media_info[:enabled]
end
site_media_info() click to toggle source

site media info The following methods could be overloaded in the initializer

# File lib/platform/config.rb, line 452
def self.site_media_info
  site_info[:media_info]
end
site_media_write_method() click to toggle source
# File lib/platform/config.rb, line 465
def self.site_media_write_method
  site_media_info[:write_method]
end
site_title() click to toggle source

Site Info

# File lib/platform/config.rb, line 255
def self.site_title
  site_info[:title] 
end
site_user_info() click to toggle source

site user info The following methods could be overloaded in the initializer

# File lib/platform/config.rb, line 336
def self.site_user_info
  site_info[:user_info]
end
site_user_info_disabled?() click to toggle source
# File lib/platform/config.rb, line 360
def self.site_user_info_disabled?
  !site_user_info_enabled?
end
site_user_info_enabled?() click to toggle source
# File lib/platform/config.rb, line 356
def self.site_user_info_enabled?
  site_user_info[:enabled].nil? ? true : site_user_info[:enabled]
end
skip_before_filters() click to toggle source
# File lib/platform/config.rb, line 317
def self.skip_before_filters
  return [] unless site_info[:skip_before_filters]
  @skip_before_filters ||= site_info[:skip_before_filters].collect{|filter| filter.to_sym}
end
suggested_apps_per_page() click to toggle source
# File lib/platform/config.rb, line 521
def self.suggested_apps_per_page
  20
end
suggested_apps_per_row() click to toggle source
# File lib/platform/config.rb, line 517
def self.suggested_apps_per_row
  5
end
suggested_apps_title() click to toggle source
# File lib/platform/config.rb, line 513
def self.suggested_apps_title
  "Applications You May Like"
end
system_developer() click to toggle source
# File lib/platform/config.rb, line 101
def self.system_developer
  @system_developer ||= Platform::Developer.find_or_create(Platform::Config.system_user)
end
system_user() click to toggle source
# File lib/platform/config.rb, line 96
def self.system_user
  return nil unless site_info[:system_user_id]
  @system_user ||= user_class_name.constantize.find_by_id(site_info[:system_user_id])
end
user_class() click to toggle source
# File lib/platform/config.rb, line 369
def self.user_class
  user_class_name.constantize
end
user_class_name() click to toggle source
# File lib/platform/config.rb, line 364
def self.user_class_name
  return site_user_info[:class_name] if site_user_info_enabled?
  "Platform::PlatformUser"  
end
user_email(user = current_user) click to toggle source
# File lib/platform/config.rb, line 387
def self.user_email(user = current_user)
  user.send(site_user_info[:methods][:email])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} name: #{ex.to_s}")
  nil
end
user_gender(user = current_user) click to toggle source
# File lib/platform/config.rb, line 394
def self.user_gender(user = current_user)
  user.send(site_user_info[:methods][:gender])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} name: #{ex.to_s}")
  "unknown"
end
user_id(user = current_user) click to toggle source
# File lib/platform/config.rb, line 373
def self.user_id(user = current_user)
  user.send(site_user_info[:methods][:id])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch user id: #{ex.to_s}")
  0
end
user_locale(user = current_user) click to toggle source
# File lib/platform/config.rb, line 417
def self.user_locale(user = current_user)
  user.send(site_user_info[:methods][:locale])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} locale: #{ex.to_s}")
  default_locale
end
user_mugshot(user = current_user) click to toggle source
# File lib/platform/config.rb, line 401
def self.user_mugshot(user = current_user)
  mugshot_image = user.send(site_user_info[:methods][:mugshot])
  return silhouette_image(user) if mugshot_image.blank?
  mugshot_image
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} image: #{ex.to_s}")
  silhouette_image
end
user_name(user = current_user) click to toggle source
# File lib/platform/config.rb, line 380
def self.user_name(user = current_user)
  user.send(site_user_info[:methods][:name])
rescue Exception => ex
  Platform::Logger.error("Failed to fetch #{user_class_name} name: #{ex.to_s}")
  "Unknown user"
end