class Perc::Application
Class for holding stuff you might find in a typical application
Constants
- LoggerLevels
Attributes
env[R]
logger[R]
root[R]
Public Class Methods
new(options)
click to toggle source
# File lib/perc/application.rb, line 34 def initialize(options) @root = options.fetch(:root) @env = ActiveSupport::StringInquirer.new(options.fetch(:env)) config do |c| Dir[root.join('app', '*')].each do |d| c.autoload_paths << d.to_s end end end
Public Instance Methods
boot()
click to toggle source
# File lib/perc/application.rb, line 70 def boot initialize_logging setup_autoload_directories require_environment run_initializers end
commands() { |cli| ... }
click to toggle source
# File lib/perc/application.rb, line 83 def commands require 'perc/cli_wrapper' cli = CliWrapper.new yield(cli) if block_given? cli end
config() { |config| ... }
click to toggle source
# File lib/perc/application.rb, line 77 def config @config ||= Config.new yield(@config) if block_given? @config end
config_for(thing, required = true)
click to toggle source
# File lib/perc/application.rb, line 57 def config_for(thing, required = true) file = root.join('config', "#{thing}.yml") if file.exist? require 'yaml' require 'erb' thing_parsed = (YAML.load(ERB.new(file.read).result) || {})[env] return (thing_parsed and thing_parsed.with_indifferent_access) unless (thing_parsed.nil? && required) raise Config::EnvironmentMissingError, "config_for(#{thing}) nil for env: #{env}" else raise Config::FileMissingError, "Could not load configuration. No such file: #{file}" end end
env=(string)
click to toggle source
# File lib/perc/application.rb, line 44 def env=(string) @env = ActiveSupport::StringInquirer.new(string) end
load_rake()
click to toggle source
# File lib/perc/application.rb, line 48 def load_rake rake_files = Dir[File.expand_path('../tasks/*.rake', __FILE__)] + Dir[root.join('lib/tasks/*.rake')] rake_files.each do |f| load(f) end end
Private Instance Methods
initialize_logging()
click to toggle source
# File lib/perc/application.rb, line 102 def initialize_logging @logger = Logger.new(test? ? 'log/test.log' : STDERR) @logger.level = LoggerLevels[ENV.fetch('PERC_LOG_LEVEL', 'DEBUG')] end
require_environment()
click to toggle source
# File lib/perc/application.rb, line 107 def require_environment require root.join('config', 'environments', env).to_s end
run_initializers()
click to toggle source
# File lib/perc/application.rb, line 92 def run_initializers Dir[root.join('config', 'initializers', '*.rb')].each do |f| require f end end
setup_autoload_directories()
click to toggle source
# File lib/perc/application.rb, line 98 def setup_autoload_directories ActiveSupport::Dependencies.autoload_paths = config.autoload_paths end