railties 4.1.16 → 4.2.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +80 -439
- data/RDOC_MAIN.rdoc +1 -1
- data/README.rdoc +6 -2
- data/lib/rails.rb +7 -1
- data/lib/rails/all.rb +1 -0
- data/lib/rails/api/task.rb +7 -0
- data/lib/rails/app_rails_loader.rb +4 -2
- data/lib/rails/application.rb +74 -47
- data/lib/rails/application/configuration.rb +23 -1
- data/lib/rails/application/finisher.rb +0 -2
- data/lib/rails/code_statistics.rb +4 -2
- data/lib/rails/commands/commands_tasks.rb +1 -6
- data/lib/rails/commands/console.rb +24 -12
- data/lib/rails/commands/dbconsole.rb +2 -2
- data/lib/rails/commands/plugin.rb +1 -1
- data/lib/rails/commands/server.rb +22 -9
- data/lib/rails/engine.rb +7 -7
- data/lib/rails/gem_version.rb +3 -3
- data/lib/rails/generators.rb +68 -15
- data/lib/rails/generators/actions.rb +27 -7
- data/lib/rails/generators/actions/create_migration.rb +2 -1
- data/lib/rails/generators/app_base.rb +55 -65
- data/lib/rails/generators/base.rb +2 -2
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb +0 -5
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb +1 -1
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb +3 -1
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb +1 -1
- data/lib/rails/generators/generated_attribute.rb +24 -4
- data/lib/rails/generators/model_helpers.rb +28 -0
- data/lib/rails/generators/rails/app/app_generator.rb +8 -2
- data/lib/rails/generators/rails/app/templates/Gemfile +21 -6
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +1 -1
- data/lib/rails/generators/rails/app/templates/bin/setup +28 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb +5 -1
- data/lib/rails/generators/rails/app/templates/config/boot.rb +1 -2
- data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml +1 -3
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml +1 -1
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +4 -0
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +8 -10
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +3 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb +1 -1
- data/lib/rails/generators/rails/app/templates/gitignore +2 -0
- data/lib/rails/generators/rails/controller/USAGE +0 -1
- data/lib/rails/generators/rails/controller/controller_generator.rb +6 -2
- data/lib/rails/generators/rails/helper/USAGE +0 -4
- data/lib/rails/generators/rails/model/USAGE +11 -1
- data/lib/rails/generators/rails/model/model_generator.rb +4 -0
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +1 -3
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec +1 -1
- data/lib/rails/generators/rails/plugin/templates/Gemfile +10 -6
- data/lib/rails/generators/rails/plugin/templates/Rakefile +4 -0
- data/lib/rails/generators/rails/plugin/templates/app/controllers/%name%/application_controller.rb.tt +0 -1
- data/lib/rails/generators/rails/plugin/templates/rails/javascripts.js +1 -1
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb +2 -10
- data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +2 -4
- data/lib/rails/generators/rails/scaffold/USAGE +7 -1
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +0 -1
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +1 -1
- data/lib/rails/generators/resource_helpers.rb +2 -11
- data/lib/rails/generators/test_unit/helper/helper_generator.rb +1 -5
- data/lib/rails/generators/testing/behaviour.rb +17 -0
- data/lib/rails/info.rb +1 -1
- data/lib/rails/info_controller.rb +1 -1
- data/lib/rails/mailers_controller.rb +14 -16
- data/lib/rails/paths.rb +1 -1
- data/lib/rails/rack.rb +1 -1
- data/lib/rails/rack/log_tailer.rb +4 -0
- data/lib/rails/rack/logger.rb +1 -1
- data/lib/rails/railtie.rb +2 -2
- data/lib/rails/ruby_version_check.rb +1 -1
- data/lib/rails/source_annotation_extractor.rb +23 -16
- data/lib/rails/tasks/framework.rake +1 -1
- data/lib/rails/tasks/statistics.rake +8 -3
- data/lib/rails/templates/rails/mailers/email.html.erb +2 -13
- data/lib/rails/templates/rails/mailers/index.html.erb +2 -2
- data/lib/rails/templates/rails/mailers/mailer.html.erb +1 -1
- data/lib/rails/test_unit/sub_test_task.rb +2 -2
- metadata +13 -13
- data/lib/rails/generators/test_unit/helper/templates/helper_test.rb +0 -6
- data/lib/rails/rubyprof_ext.rb +0 -35
data/RDOC_MAIN.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
== Welcome to \Rails
|
2
2
|
|
3
3
|
\Rails is a web-application framework that includes everything needed to create
|
4
|
-
database-backed web applications according to the {Model-View-Controller (MVC)}[http://en.wikipedia.org/wiki/Model
|
4
|
+
database-backed web applications according to the {Model-View-Controller (MVC)}[http://en.wikipedia.org/wiki/Model-view-controller] pattern.
|
5
5
|
|
6
6
|
Understanding the MVC pattern is key to understanding \Rails. MVC divides your application
|
7
7
|
into three layers, each with a specific responsibility.
|
data/README.rdoc
CHANGED
@@ -17,7 +17,7 @@ The latest version of Railties can be installed with RubyGems:
|
|
17
17
|
|
18
18
|
Source code can be downloaded as part of the Rails project on GitHub
|
19
19
|
|
20
|
-
* https://github.com/rails/rails/tree/
|
20
|
+
* https://github.com/rails/rails/tree/master/railties
|
21
21
|
|
22
22
|
== License
|
23
23
|
|
@@ -31,7 +31,11 @@ API documentation is at
|
|
31
31
|
|
32
32
|
* http://api.rubyonrails.org
|
33
33
|
|
34
|
-
Bug reports
|
34
|
+
Bug reports can be filed for the Ruby on Rails project here:
|
35
35
|
|
36
36
|
* https://github.com/rails/rails/issues
|
37
37
|
|
38
|
+
Feature requests should be discussed on the rails-core mailing list here:
|
39
|
+
|
40
|
+
* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core
|
41
|
+
|
data/lib/rails.rb
CHANGED
@@ -29,7 +29,13 @@ module Rails
|
|
29
29
|
autoload :WelcomeController
|
30
30
|
|
31
31
|
class << self
|
32
|
-
|
32
|
+
@application = @app_class = nil
|
33
|
+
|
34
|
+
attr_writer :application
|
35
|
+
attr_accessor :app_class, :cache, :logger
|
36
|
+
def application
|
37
|
+
@application ||= (app_class.instance if app_class)
|
38
|
+
end
|
33
39
|
|
34
40
|
delegate :initialize!, :initialized?, to: :application
|
35
41
|
|
data/lib/rails/all.rb
CHANGED
data/lib/rails/api/task.rb
CHANGED
@@ -2,6 +2,8 @@ require 'pathname'
|
|
2
2
|
|
3
3
|
module Rails
|
4
4
|
module AppRailsLoader
|
5
|
+
extend self
|
6
|
+
|
5
7
|
RUBY = Gem.ruby
|
6
8
|
EXECUTABLES = ['bin/rails', 'script/rails']
|
7
9
|
BUNDLER_WARNING = <<EOS
|
@@ -26,7 +28,7 @@ generate it and add it to source control:
|
|
26
28
|
|
27
29
|
EOS
|
28
30
|
|
29
|
-
def
|
31
|
+
def exec_app_rails
|
30
32
|
original_cwd = Dir.pwd
|
31
33
|
|
32
34
|
loop do
|
@@ -54,7 +56,7 @@ EOS
|
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
57
|
-
def
|
59
|
+
def find_executable
|
58
60
|
EXECUTABLES.find { |exe| File.file?(exe) }
|
59
61
|
end
|
60
62
|
end
|
data/lib/rails/application.rb
CHANGED
@@ -87,7 +87,15 @@ module Rails
|
|
87
87
|
class << self
|
88
88
|
def inherited(base)
|
89
89
|
super
|
90
|
-
base
|
90
|
+
Rails.app_class = base
|
91
|
+
end
|
92
|
+
|
93
|
+
def instance
|
94
|
+
super.run_load_hooks!
|
95
|
+
end
|
96
|
+
|
97
|
+
def create(initial_variable_values = {}, &block)
|
98
|
+
new(initial_variable_values, &block).run_load_hooks!
|
91
99
|
end
|
92
100
|
|
93
101
|
# Makes the +new+ method public.
|
@@ -116,24 +124,33 @@ module Rails
|
|
116
124
|
@ordered_railties = nil
|
117
125
|
@railties = nil
|
118
126
|
@message_verifiers = {}
|
127
|
+
@ran_load_hooks = false
|
119
128
|
|
120
|
-
|
129
|
+
# are these actually used?
|
130
|
+
@initial_variable_values = initial_variable_values
|
131
|
+
@block = block
|
121
132
|
|
122
133
|
add_lib_to_load_path!
|
134
|
+
end
|
135
|
+
|
136
|
+
# Returns true if the application is initialized.
|
137
|
+
def initialized?
|
138
|
+
@initialized
|
139
|
+
end
|
140
|
+
|
141
|
+
def run_load_hooks! # :nodoc:
|
142
|
+
return self if @ran_load_hooks
|
143
|
+
@ran_load_hooks = true
|
123
144
|
ActiveSupport.run_load_hooks(:before_configuration, self)
|
124
145
|
|
125
|
-
initial_variable_values.each do |variable_name, value|
|
146
|
+
@initial_variable_values.each do |variable_name, value|
|
126
147
|
if INITIAL_VARIABLES.include?(variable_name)
|
127
148
|
instance_variable_set("@#{variable_name}", value)
|
128
149
|
end
|
129
150
|
end
|
130
151
|
|
131
|
-
instance_eval(
|
132
|
-
|
133
|
-
|
134
|
-
# Returns true if the application is initialized.
|
135
|
-
def initialized?
|
136
|
-
@initialized
|
152
|
+
instance_eval(&@block) if @block
|
153
|
+
self
|
137
154
|
end
|
138
155
|
|
139
156
|
# Implements call according to the Rack API. It simply
|
@@ -153,14 +170,13 @@ module Rails
|
|
153
170
|
def key_generator
|
154
171
|
# number of iterations selected based on consultation with the google security
|
155
172
|
# team. Details at https://github.com/rails/rails/pull/6952#issuecomment-7661220
|
156
|
-
@caching_key_generator ||=
|
173
|
+
@caching_key_generator ||=
|
157
174
|
if secrets.secret_key_base
|
158
175
|
key_generator = ActiveSupport::KeyGenerator.new(secrets.secret_key_base, iterations: 1000)
|
159
176
|
ActiveSupport::CachingKeyGenerator.new(key_generator)
|
160
177
|
else
|
161
|
-
ActiveSupport::LegacyKeyGenerator.new(
|
178
|
+
ActiveSupport::LegacyKeyGenerator.new(config.secret_token)
|
162
179
|
end
|
163
|
-
end
|
164
180
|
end
|
165
181
|
|
166
182
|
# Returns a message verifier object.
|
@@ -188,6 +204,38 @@ module Rails
|
|
188
204
|
end
|
189
205
|
end
|
190
206
|
|
207
|
+
# Convenience for loading config/foo.yml for the current Rails env.
|
208
|
+
#
|
209
|
+
# Example:
|
210
|
+
#
|
211
|
+
# # config/exception_notification.yml:
|
212
|
+
# production:
|
213
|
+
# url: http://127.0.0.1:8080
|
214
|
+
# namespace: my_app_production
|
215
|
+
# development:
|
216
|
+
# url: http://localhost:3001
|
217
|
+
# namespace: my_app_development
|
218
|
+
#
|
219
|
+
# # config/production.rb
|
220
|
+
# MyApp::Application.configure do
|
221
|
+
# config.middleware.use ExceptionNotifier, config_for(:exception_notification)
|
222
|
+
# end
|
223
|
+
def config_for(name)
|
224
|
+
yaml = Pathname.new("#{paths["config"].existent.first}/#{name}.yml")
|
225
|
+
|
226
|
+
if yaml.exist?
|
227
|
+
require "yaml"
|
228
|
+
require "erb"
|
229
|
+
(YAML.load(ERB.new(yaml.read).result) || {})[Rails.env] || {}
|
230
|
+
else
|
231
|
+
raise "Could not load configuration. No such file - #{yaml}"
|
232
|
+
end
|
233
|
+
rescue Psych::SyntaxError => e
|
234
|
+
raise "YAML syntax error occurred while parsing #{yaml}. " \
|
235
|
+
"Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " \
|
236
|
+
"Error: #{e.message}"
|
237
|
+
end
|
238
|
+
|
191
239
|
# Stores some of the Rails initial environment parameters which
|
192
240
|
# will be used by middlewares and engines to configure themselves.
|
193
241
|
def env_config
|
@@ -197,7 +245,7 @@ module Rails
|
|
197
245
|
super.merge({
|
198
246
|
"action_dispatch.parameter_filter" => config.filter_parameters,
|
199
247
|
"action_dispatch.redirect_filter" => config.filter_redirect,
|
200
|
-
"action_dispatch.secret_token" =>
|
248
|
+
"action_dispatch.secret_token" => config.secret_token,
|
201
249
|
"action_dispatch.secret_key_base" => secrets.secret_key_base,
|
202
250
|
"action_dispatch.show_exceptions" => config.action_dispatch.show_exceptions,
|
203
251
|
"action_dispatch.show_detailed_exceptions" => config.consider_all_requests_local,
|
@@ -208,7 +256,8 @@ module Rails
|
|
208
256
|
"action_dispatch.signed_cookie_salt" => config.action_dispatch.signed_cookie_salt,
|
209
257
|
"action_dispatch.encrypted_cookie_salt" => config.action_dispatch.encrypted_cookie_salt,
|
210
258
|
"action_dispatch.encrypted_signed_cookie_salt" => config.action_dispatch.encrypted_signed_cookie_salt,
|
211
|
-
"action_dispatch.cookies_serializer" => config.action_dispatch.cookies_serializer
|
259
|
+
"action_dispatch.cookies_serializer" => config.action_dispatch.cookies_serializer,
|
260
|
+
"action_dispatch.cookies_digest" => config.action_dispatch.cookies_digest
|
212
261
|
})
|
213
262
|
end
|
214
263
|
end
|
@@ -316,21 +365,7 @@ module Rails
|
|
316
365
|
@config = configuration
|
317
366
|
end
|
318
367
|
|
319
|
-
|
320
|
-
#
|
321
|
-
# Example:
|
322
|
-
#
|
323
|
-
# development:
|
324
|
-
# secret_key_base: 836fa3665997a860728bcb9e9a1e704d427cfc920e79d847d79c8a9a907b9e965defa4154b2b86bdec6930adbe33f21364523a6f6ce363865724549fdfc08553
|
325
|
-
# test:
|
326
|
-
# secret_key_base: 5a37811464e7d378488b0f073e2193b093682e4e21f5d6f3ae0a4e1781e61a351fdc878a843424e81c73fb484a40d23f92c8dafac4870e74ede6e5e174423010
|
327
|
-
# production:
|
328
|
-
# secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
329
|
-
# namespace: my_app_production
|
330
|
-
#
|
331
|
-
# +Rails.application.secrets.namespace+ returns +my_app_production+ in the
|
332
|
-
# production environment.
|
333
|
-
def secrets
|
368
|
+
def secrets #:nodoc:
|
334
369
|
@secrets ||= begin
|
335
370
|
secrets = ActiveSupport::OrderedOptions.new
|
336
371
|
yaml = config.paths["config/secrets"].first
|
@@ -343,8 +378,6 @@ module Rails
|
|
343
378
|
|
344
379
|
# Fallback to config.secret_key_base if secrets.secret_key_base isn't set
|
345
380
|
secrets.secret_key_base ||= config.secret_key_base
|
346
|
-
# Fallback to config.secret_token if secrets.secret_token isn't set
|
347
|
-
secrets.secret_token ||= config.secret_token
|
348
381
|
|
349
382
|
secrets
|
350
383
|
end
|
@@ -381,14 +414,8 @@ module Rails
|
|
381
414
|
end
|
382
415
|
end
|
383
416
|
|
384
|
-
# Return an array of railties respecting the order they're loaded
|
385
|
-
# and the order specified by the +railties_order+ config.
|
386
|
-
#
|
387
|
-
# While when running initializers we need engines in reverse
|
388
|
-
# order here when copying migrations from railties we need then in the same
|
389
|
-
# order as given by +railties_order+
|
390
417
|
def migration_railties # :nodoc:
|
391
|
-
ordered_railties
|
418
|
+
(ordered_railties & railties_without_main_app).reverse
|
392
419
|
end
|
393
420
|
|
394
421
|
protected
|
@@ -421,6 +448,11 @@ module Rails
|
|
421
448
|
super
|
422
449
|
end
|
423
450
|
|
451
|
+
def railties_without_main_app # :nodoc:
|
452
|
+
@railties_without_main_app ||= Rails::Railtie.subclasses.map(&:instance) +
|
453
|
+
Rails::Engine.subclasses.map(&:instance)
|
454
|
+
end
|
455
|
+
|
424
456
|
# Returns the ordered railties for this application considering railties_order.
|
425
457
|
def ordered_railties #:nodoc:
|
426
458
|
@ordered_railties ||= begin
|
@@ -440,13 +472,13 @@ module Rails
|
|
440
472
|
|
441
473
|
index = order.index(:all)
|
442
474
|
order[index] = all
|
443
|
-
order
|
475
|
+
order.reverse.flatten
|
444
476
|
end
|
445
477
|
end
|
446
478
|
|
447
479
|
def railties_initializers(current) #:nodoc:
|
448
480
|
initializers = []
|
449
|
-
ordered_railties.
|
481
|
+
ordered_railties.each do |r|
|
450
482
|
if r == self
|
451
483
|
initializers += current
|
452
484
|
else
|
@@ -474,13 +506,8 @@ module Rails
|
|
474
506
|
end
|
475
507
|
|
476
508
|
def validate_secret_key_config! #:nodoc:
|
477
|
-
if secrets.secret_key_base.blank?
|
478
|
-
|
479
|
-
"Read the upgrade documentation to learn more about this new config option."
|
480
|
-
|
481
|
-
if secrets.secret_token.blank?
|
482
|
-
raise "Missing `secret_token` and `secret_key_base` for '#{Rails.env}' environment, set these values in `config/secrets.yml`"
|
483
|
-
end
|
509
|
+
if secrets.secret_key_base.blank? && config.secret_token.blank?
|
510
|
+
raise "Missing `secret_key_base` for '#{Rails.env}' environment, set this value in `config/secrets.yml`"
|
484
511
|
end
|
485
512
|
end
|
486
513
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'active_support/core_ext/kernel/reporting'
|
2
2
|
require 'active_support/file_update_checker'
|
3
3
|
require 'rails/engine/configuration'
|
4
|
+
require 'rails/source_annotation_extractor'
|
4
5
|
|
5
6
|
module Rails
|
6
7
|
class Application
|
@@ -12,7 +13,7 @@ module Rails
|
|
12
13
|
:railties_order, :relative_url_root, :secret_key_base, :secret_token,
|
13
14
|
:serve_static_assets, :ssl_options, :static_cache_control, :session_options,
|
14
15
|
:time_zone, :reload_classes_only_on_change,
|
15
|
-
:beginning_of_week, :filter_redirect
|
16
|
+
:beginning_of_week, :filter_redirect, :x
|
16
17
|
|
17
18
|
attr_writer :log_level
|
18
19
|
attr_reader :encoding
|
@@ -47,6 +48,7 @@ module Rails
|
|
47
48
|
@eager_load = nil
|
48
49
|
@secret_token = nil
|
49
50
|
@secret_key_base = nil
|
51
|
+
@x = Custom.new
|
50
52
|
|
51
53
|
@assets = ActiveSupport::OrderedOptions.new
|
52
54
|
@assets.enabled = true
|
@@ -150,6 +152,26 @@ module Rails
|
|
150
152
|
end
|
151
153
|
end
|
152
154
|
|
155
|
+
def annotations
|
156
|
+
SourceAnnotationExtractor::Annotation
|
157
|
+
end
|
158
|
+
|
159
|
+
private
|
160
|
+
class Custom #:nodoc:
|
161
|
+
def initialize
|
162
|
+
@configurations = Hash.new
|
163
|
+
end
|
164
|
+
|
165
|
+
def method_missing(method, *args)
|
166
|
+
if method =~ /=$/
|
167
|
+
@configurations[$`.to_sym] = args.first
|
168
|
+
else
|
169
|
+
@configurations.fetch(method) {
|
170
|
+
@configurations[method] = ActiveSupport::OrderedOptions.new
|
171
|
+
}
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
153
175
|
end
|
154
176
|
end
|
155
177
|
end
|
@@ -22,8 +22,6 @@ module Rails
|
|
22
22
|
initializer :add_builtin_route do |app|
|
23
23
|
if Rails.env.development?
|
24
24
|
app.routes.append do
|
25
|
-
get '/rails/mailers' => "rails/mailers#index"
|
26
|
-
get '/rails/mailers/*path' => "rails/mailers#preview"
|
27
25
|
get '/rails/info/properties' => "rails/info#properties"
|
28
26
|
get '/rails/info/routes' => "rails/info#routes"
|
29
27
|
get '/rails/info' => "rails/info#index"
|
@@ -42,9 +42,11 @@ class CodeStatistics #:nodoc:
|
|
42
42
|
|
43
43
|
if File.directory?(path) && (/^\./ !~ file_name)
|
44
44
|
stats.add(calculate_directory_statistics(path, pattern))
|
45
|
-
elsif file_name =~ pattern
|
46
|
-
stats.add_by_file_path(path)
|
47
45
|
end
|
46
|
+
|
47
|
+
next unless file_name =~ pattern
|
48
|
+
|
49
|
+
stats.add_by_file_path(path)
|
48
50
|
end
|
49
51
|
|
50
52
|
stats
|
@@ -20,7 +20,6 @@ The most common rails commands are:
|
|
20
20
|
new application called MyApp in "./my_app"
|
21
21
|
|
22
22
|
In addition to those, there are:
|
23
|
-
application Generate the Rails application code
|
24
23
|
destroy Undo code generated with "generate" (short-cut alias: "d")
|
25
24
|
plugin new Generates skeleton for developing a Rails plugin
|
26
25
|
runner Run a piece of code in the application environment (short-cut alias: "r")
|
@@ -28,7 +27,7 @@ In addition to those, there are:
|
|
28
27
|
All commands can be run with -h (or --help) for more information.
|
29
28
|
EOT
|
30
29
|
|
31
|
-
COMMAND_WHITELIST = %w(plugin generate destroy console server dbconsole
|
30
|
+
COMMAND_WHITELIST = %w(plugin generate destroy console server dbconsole runner new version help)
|
32
31
|
|
33
32
|
def initialize(argv)
|
34
33
|
@argv = argv
|
@@ -87,10 +86,6 @@ EOT
|
|
87
86
|
Rails::DBConsole.start
|
88
87
|
end
|
89
88
|
|
90
|
-
def application
|
91
|
-
require_command!("application")
|
92
|
-
end
|
93
|
-
|
94
89
|
def runner
|
95
90
|
require_command!("runner")
|
96
91
|
end
|
@@ -18,7 +18,14 @@ module Rails
|
|
18
18
|
opt.on("-e", "--environment=name", String,
|
19
19
|
"Specifies the environment to run this console under (test/development/production).",
|
20
20
|
"Default: development") { |v| options[:environment] = v.strip }
|
21
|
-
opt.on("--debugger", 'Enable the debugger.')
|
21
|
+
opt.on("--debugger", 'Enable the debugger.') do |v|
|
22
|
+
if RUBY_VERSION < '2.0.0'
|
23
|
+
options[:debugger] = v
|
24
|
+
else
|
25
|
+
puts "=> Notice: debugger option is ignored since ruby 2.0 and " \
|
26
|
+
"it will be removed in future versions"
|
27
|
+
end
|
28
|
+
end
|
22
29
|
opt.parse!(arguments)
|
23
30
|
end
|
24
31
|
|
@@ -69,12 +76,25 @@ module Rails
|
|
69
76
|
Rails.env = environment
|
70
77
|
end
|
71
78
|
|
72
|
-
|
73
|
-
|
79
|
+
if RUBY_VERSION < '2.0.0'
|
80
|
+
def debugger?
|
81
|
+
options[:debugger]
|
82
|
+
end
|
83
|
+
|
84
|
+
def require_debugger
|
85
|
+
require 'debugger'
|
86
|
+
puts "=> Debugger enabled"
|
87
|
+
rescue LoadError
|
88
|
+
puts "You're missing the 'debugger' gem. Add it to your Gemfile, bundle it and try again."
|
89
|
+
exit(1)
|
90
|
+
end
|
74
91
|
end
|
75
92
|
|
76
93
|
def start
|
77
|
-
|
94
|
+
if RUBY_VERSION < '2.0.0'
|
95
|
+
require_debugger if debugger?
|
96
|
+
end
|
97
|
+
|
78
98
|
set_environment! if environment?
|
79
99
|
|
80
100
|
if sandbox?
|
@@ -89,13 +109,5 @@ module Rails
|
|
89
109
|
end
|
90
110
|
console.start
|
91
111
|
end
|
92
|
-
|
93
|
-
def require_debugger
|
94
|
-
require 'debugger'
|
95
|
-
puts "=> Debugger enabled"
|
96
|
-
rescue LoadError
|
97
|
-
puts "You're missing the 'debugger' gem. Add it to your Gemfile, bundle it and try again."
|
98
|
-
exit(1)
|
99
|
-
end
|
100
112
|
end
|
101
113
|
end
|