1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
require 'rails/ruby_version_check'
require 'pathname'
require 'active_support'
require 'active_support/core_ext/kernel/reporting'
require 'active_support/core_ext/array/extract_options'
require 'rails/application'
require 'rails/version'
require 'rails/deprecation'
require 'active_support/railtie'
require 'action_dispatch/railtie'
# For Ruby 1.9, UTF-8 is the default internal and external encoding.
silence_warnings do
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
module Rails
autoload :Info, 'rails/info'
autoload :InfoController, 'rails/info_controller'
autoload :Queueing, 'rails/queueing'
class << self
def application
@application ||= nil
end
def application=(application)
@application = application
end
# The Configuration instance used to configure the Rails environment
def configuration
application.config
end
# Rails.queue is the application's queue. You can push a job onto
# the queue by:
#
# Rails.queue.push job
#
# A job is an object that responds to +run+. Queue consumers will
# pop jobs off of the queue and invoke the queue's +run+ method.
#
# Note that depending on your queue implementation, jobs may not
# be executed in the same process as they were created in, and
# are never executed in the same thread as they were created in.
#
# If necessary, a queue implementation may need to serialize your
# job for distribution to another process. The documentation of
# your queue will specify the requirements for that serialization.
def queue
application.queue
end
def initialize!
application.initialize!
end
def initialized?
application.initialized?
end
def logger
@logger ||= nil
end
def logger=(logger)
@logger = logger
end
def backtrace_cleaner
@backtrace_cleaner ||= begin
# Relies on Active Support, so we have to lazy load to postpone definition until AS has been loaded
require 'rails/backtrace_cleaner'
Rails::BacktraceCleaner.new
end
end
def root
application && application.config.root
end
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
def env=(environment)
@_env = ActiveSupport::StringInquirer.new(environment)
end
def cache
@cache ||= nil
end
def cache=(cache)
@cache = cache
end
# Returns all rails groups for loading based on:
#
# * The Rails environment;
# * The environment variable RAILS_GROUPS;
# * The optional envs given as argument and the hash with group dependencies;
#
# groups :assets => [:development, :test]
#
# # Returns
# # => [:default, :development, :assets] for Rails.env == "development"
# # => [:default, :production] for Rails.env == "production"
def groups(*groups)
hash = groups.extract_options!
env = Rails.env
groups.unshift(:default, env)
groups.concat ENV["RAILS_GROUPS"].to_s.split(",")
groups.concat hash.map { |k,v| k if v.map(&:to_s).include?(env) }
groups.compact!
groups.uniq!
groups
end
def version
VERSION::STRING
end
def public_path
application && application.paths["public"].first
end
end
end
|