Class: FanforceApp::CoreConfig
- Inherits:
-
Object
- Object
- FanforceApp::CoreConfig
- Defined in:
- lib/fanforce/app_factory/config/core_config.rb
Instance Attribute Summary collapse
-
#_id ⇒ Object
Returns the value of attribute _id.
-
#bugsnag ⇒ Object
Returns the value of attribute bugsnag.
-
#bugsnag_enabled ⇒ Object
Returns the value of attribute bugsnag_enabled.
-
#dir_name ⇒ Object
Returns the value of attribute dir_name.
-
#factory_root_dir ⇒ Object
Returns the value of attribute factory_root_dir.
-
#redis_url ⇒ Object
Returns the value of attribute redis_url.
-
#root_dir ⇒ Object
Returns the value of attribute root_dir.
-
#show_error_details ⇒ Object
Returns the value of attribute show_error_details.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Class Method Summary collapse
- .default_redis_url ⇒ Object
- .load_env ⇒ Object
- .load_env_from_file(file) ⇒ Object
- .load_redis(redis_url = nil) ⇒ Object
Instance Method Summary collapse
- #bugsnag_enabled? ⇒ Boolean
-
#initialize(root_dir) ⇒ CoreConfig
constructor
A new instance of CoreConfig.
- #load ⇒ Object
- #load_bugsnag ⇒ Object
- #load_env ⇒ Object
- #load_redis ⇒ Object
- #load_routes ⇒ Object
Constructor Details
#initialize(root_dir) ⇒ CoreConfig
Returns a new instance of CoreConfig.
6 7 8 9 10 11 12 13 14 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 6 def initialize(root_dir) @_id = ENV['FANFORCE_APP_ID'] @root_dir = root_dir @factory_root_dir = File. '../../', __FILE__ @redis_url = self.class.default_redis_url @show_error_details = false @bugsnag = (ENV['BUGSNAG_API_KEY'].present?) ? {api_key: ENV['BUGSNAG_API_KEY']} : nil end |
Instance Attribute Details
#_id ⇒ Object
Returns the value of attribute _id.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def _id @_id end |
#bugsnag ⇒ Object
Returns the value of attribute bugsnag.
3 4 5 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 3 def bugsnag @bugsnag end |
#bugsnag_enabled ⇒ Object
Returns the value of attribute bugsnag_enabled.
3 4 5 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 3 def bugsnag_enabled @bugsnag_enabled end |
#dir_name ⇒ Object
Returns the value of attribute dir_name.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def dir_name @dir_name end |
#factory_root_dir ⇒ Object
Returns the value of attribute factory_root_dir.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def factory_root_dir @factory_root_dir end |
#redis_url ⇒ Object
Returns the value of attribute redis_url.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def redis_url @redis_url end |
#root_dir ⇒ Object
Returns the value of attribute root_dir.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def root_dir @root_dir end |
#show_error_details ⇒ Object
Returns the value of attribute show_error_details.
2 3 4 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 2 def show_error_details @show_error_details end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
4 5 6 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 4 def type @type end |
Class Method Details
.default_redis_url ⇒ Object
88 89 90 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 88 def self.default_redis_url ENV['REDIS_URL'] || 'redis://localhost:6379' end |
.load_env ⇒ Object
72 73 74 75 76 77 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 72 def self.load_env if (!ENV['RACK_ENV'] or ENV['RACK_ENV'] == 'development') load_env_from_file("#{FanforceApp.config.root_dir}/.powenv") if File.exists?("#{FanforceApp.config.root_dir}/.powenv") load_env_from_file("#{FanforceApp.config.root_dir}/.appenv") if File.exists?("#{FanforceApp.config.root_dir}/.appenv") end end |
.load_env_from_file(file) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 92 def self.load_env_from_file(file) File.open(file, 'rb') do |file| contents = file.read lines = contents.gsub('export ', '').split(/\n\r?/).reject{|line| line.blank?} lines.each do |line| keyValue = line.split("=", 2) next unless keyValue.count == 2 ENV[keyValue.first] = keyValue.last.gsub("'",'').gsub('"','') end end end |
.load_redis(redis_url = nil) ⇒ Object
83 84 85 86 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 83 def self.load_redis(redis_url=nil) redis_url ||= default_redis_url $Redis = ::Redis.new(url: redis_url) end |
Instance Method Details
#bugsnag_enabled? ⇒ Boolean
33 34 35 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 33 def bugsnag_enabled? @bugsnag_enabled end |
#load ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 20 def load raise 'CRITICAL: This FanforceApp requires config._id to be set. See documentation.' if !@_id raise 'CRITICAL: This FanforceApp requires config.root_dir to be set. See documentation' if !@root_dir FanforceApp::Sinatra.set :root, @root_dir FanforceApp::Sinatra.set :public_folder, [@root_dir+'/public', @factory_root_dir+'/public'].inject(''){|dir, d| File.directory?(d) ? (break d) : d } FanforceApp::Sinatra.set :views, [@root_dir+'/views', @factory_root_dir+'/views'].inject(''){|dir, d| File.directory?(d) ? (break d) : d } FanforceApp.config.load_bugsnag FanforceApp.config.load_routes FanforceApp.config.load_redis end |
#load_bugsnag ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 37 def load_bugsnag return if !@bugsnag.is_a?(Hash) or ENV['RACK_ENV'] == 'test' require 'bugsnag' Bugsnag.configure do |config| config.api_key = ENV['BUGSNAG_API_KEY'] || @bugsnag[:api_key] config.notify_release_stages = @bugsnag[:notify_release_stages] || ['development','staging','production'] config.release_stage = @bugsnag[:release_stage] || ENV['RACK_ENV'] config.app_version = @bugsnag[:app_version] || "fanforce-app-factory-#{Fanforce::AppFactory::VERSION}" config.project_root = @root_dir end @bugsnag_enabled = true end |
#load_env ⇒ Object
68 69 70 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 68 def load_env self.class.load_env end |
#load_redis ⇒ Object
79 80 81 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 79 def load_redis self.class.load_redis(@redis_url) end |
#load_routes ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/fanforce/app_factory/config/core_config.rb', line 50 def load_routes @dir_name = /\/([^\/]+)\/?$/.match(@root_dir)[1] $: << File.join(@root_dir,'lib') if File.directory?("#{@root_dir}/lib") $: << @root_dir if File.directory?("#{@root_dir}") Dir["#{@root_dir}/initializers/*.rb"].each {|f| require f } if File.directory?("#{@root_dir}/initializers") require "#{@root_dir}/Routes" if File.exists?("#{@root_dir}/Routes.rb") require "#{@factory_root_dir}/routes_core" require "#{@factory_root_dir}/routes_connector" require "#{@factory_root_dir}/routes_broadcaster" require "#{@factory_root_dir}/routes_identifier" require "#{@factory_root_dir}/routes_behavior" require "#{@factory_root_dir}/routes_js_widget" end |