railties 5.0.0.beta2 → 5.0.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/RDOC_MAIN.rdoc +1 -1
- data/lib/rails/application.rb +1 -1
- data/lib/rails/application/finisher.rb +4 -4
- data/lib/rails/code_statistics.rb +21 -9
- data/lib/rails/commands.rb +0 -1
- data/lib/rails/commands/runner.rb +2 -2
- data/lib/rails/engine/configuration.rb +1 -0
- data/lib/rails/gem_version.rb +1 -1
- data/lib/rails/generators.rb +5 -1
- data/lib/rails/generators/actions.rb +2 -1
- data/lib/rails/generators/app_base.rb +17 -11
- data/lib/rails/generators/rails/app/app_generator.rb +7 -2
- data/lib/rails/generators/rails/app/templates/Gemfile +6 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml +2 -2
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +11 -1
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +1 -3
- data/lib/rails/generators/rails/app/templates/config/puma.rb +3 -0
- data/lib/rails/generators/rails/app/templates/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/rails/generators/rails/app/templates/public/apple-touch-icon.png +0 -0
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +1 -4
- data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +1 -0
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml +1 -1
- data/lib/rails/rack/logger.rb +0 -4
- data/lib/rails/railtie.rb +7 -4
- data/lib/rails/tasks.rb +1 -0
- data/lib/rails/tasks/dev.rake +14 -0
- data/lib/rails/tasks/framework.rake +1 -1
- data/lib/rails/tasks/routes.rake +6 -6
- data/lib/rails/test_unit/line_filtering.rb +12 -4
- data/lib/rails/test_unit/minitest_plugin.rb +5 -2
- data/lib/rails/test_unit/reporter.rb +4 -16
- metadata +12 -11
- data/lib/rails/commands/dev_cache.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4fea73157abd641e818793971d61f9ba1c982cb
|
4
|
+
data.tar.gz: 9356d423706a1cb8c934ca166661c0bd9a018f5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93728268e600949966dcb493db8738e8b601d973d09bff191808f473e5015862a8a533268e0354136e42b27e4ed73cfe70e8cbe6e34556ff39eeb292acddaea7
|
7
|
+
data.tar.gz: 941025bde174d4fc8645f143148dc26addbd7eb60df50d31c500fa9258105aa5d363b4270b7223ac3f90a280e35d4aa8e5c58a6ebab2c46716751e2b365c646b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,37 @@
|
|
1
|
+
## Rails 5.0.0.beta3 (February 24, 2016) ##
|
2
|
+
|
3
|
+
* Alias `rake` with `rails_command` in the Rails Application Templates API
|
4
|
+
following Rails 5 convention of preferring "rails" to "rake" to run tasks.
|
5
|
+
|
6
|
+
*claudiob*
|
7
|
+
|
8
|
+
* Generate applications with an option to log to STDOUT in production
|
9
|
+
using the environment variable `RAILS_LOG_TO_STDOUT`.
|
10
|
+
|
11
|
+
*Richard Schneeman*
|
12
|
+
|
13
|
+
* Change fail fast of `bin/rails test` interrupts run on error.
|
14
|
+
|
15
|
+
*Yuji Yaginuma*
|
16
|
+
|
17
|
+
* The application generator supports `--skip-listen` to opt-out of features
|
18
|
+
that depend on the listen gem. As of this writing they are the evented file
|
19
|
+
system monitor and the async plugin for spring.
|
20
|
+
|
21
|
+
* The Gemfiles of new applications include spring-watcher-listen on Linux and
|
22
|
+
Mac OS X (unless --skip-spring).
|
23
|
+
|
24
|
+
*Xavier Noria*
|
25
|
+
|
26
|
+
* New applications are generated with the evented file system monitor enabled
|
27
|
+
on Linux and Mac OS X.
|
28
|
+
|
29
|
+
*Xavier Noria*
|
30
|
+
|
31
|
+
* Add dummy files for apple-touch-icon.png and apple-touch-icon.png. GH#23427
|
32
|
+
|
33
|
+
*Alexey Zabelin*
|
34
|
+
|
1
35
|
## Rails 5.0.0.beta2 (February 01, 2016) ##
|
2
36
|
|
3
37
|
* Add `after_bundle` callbacks in Rails plugin templates. Useful for allowing
|
data/RDOC_MAIN.rdoc
CHANGED
@@ -51,7 +51,7 @@ can read more about Action Pack in its {README}[link:files/actionpack/README_rdo
|
|
51
51
|
|
52
52
|
4. Go to http://localhost:3000 and you'll see:
|
53
53
|
|
54
|
-
"
|
54
|
+
"Yay! You’re on Rails!"
|
55
55
|
|
56
56
|
5. Follow the guidelines to start developing your application. You may find the following resources handy:
|
57
57
|
|
data/lib/rails/application.rb
CHANGED
@@ -214,7 +214,7 @@ module Rails
|
|
214
214
|
# url: http://localhost:3001
|
215
215
|
# namespace: my_app_development
|
216
216
|
#
|
217
|
-
# # config/production.rb
|
217
|
+
# # config/environments/production.rb
|
218
218
|
# Rails.application.configure do
|
219
219
|
# config.middleware.use ExceptionNotifier, config_for(:exception_notification)
|
220
220
|
# end
|
@@ -22,10 +22,10 @@ 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/info/properties' => "rails/info#properties"
|
26
|
-
get '/rails/info/routes' => "rails/info#routes"
|
27
|
-
get '/rails/info' => "rails/info#index"
|
28
|
-
get '/' => "rails/welcome#index"
|
25
|
+
get '/rails/info/properties' => "rails/info#properties", internal: true
|
26
|
+
get '/rails/info/routes' => "rails/info#routes", internal: true
|
27
|
+
get '/rails/info' => "rails/info#index", internal: true
|
28
|
+
get '/' => "rails/welcome#index", internal: true
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -9,6 +9,8 @@ class CodeStatistics #:nodoc:
|
|
9
9
|
'Job tests',
|
10
10
|
'Integration tests']
|
11
11
|
|
12
|
+
HEADERS = {lines: ' Lines', code_lines: ' LOC', classes: 'Classes', methods: 'Methods'}
|
13
|
+
|
12
14
|
def initialize(*pairs)
|
13
15
|
@pairs = pairs
|
14
16
|
@statistics = calculate_statistics
|
@@ -67,27 +69,37 @@ class CodeStatistics #:nodoc:
|
|
67
69
|
test_loc
|
68
70
|
end
|
69
71
|
|
72
|
+
def width_for(label)
|
73
|
+
[@statistics.values.sum {|s| s.send(label) }.to_s.size, HEADERS[label].length].max
|
74
|
+
end
|
75
|
+
|
70
76
|
def print_header
|
71
77
|
print_splitter
|
72
|
-
|
78
|
+
print '| Name '
|
79
|
+
HEADERS.each do |k, v|
|
80
|
+
print " | #{v.rjust(width_for(k))}"
|
81
|
+
end
|
82
|
+
puts ' | M/C | LOC/M |'
|
73
83
|
print_splitter
|
74
84
|
end
|
75
85
|
|
76
86
|
def print_splitter
|
77
|
-
|
87
|
+
print '+----------------------'
|
88
|
+
HEADERS.each_key do |k|
|
89
|
+
print "+#{'-' * (width_for(k) + 2)}"
|
90
|
+
end
|
91
|
+
puts '+-----+-------+'
|
78
92
|
end
|
79
93
|
|
80
94
|
def print_line(name, statistics)
|
81
95
|
m_over_c = (statistics.methods / statistics.classes) rescue m_over_c = 0
|
82
96
|
loc_over_m = (statistics.code_lines / statistics.methods) - 2 rescue loc_over_m = 0
|
83
97
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
"| #{m_over_c.to_s.rjust(3)} " \
|
90
|
-
"| #{loc_over_m.to_s.rjust(5)} |"
|
98
|
+
print "| #{name.ljust(20)} "
|
99
|
+
HEADERS.each_key do |k|
|
100
|
+
print "| #{statistics.send(k).to_s.rjust(width_for(k))} "
|
101
|
+
end
|
102
|
+
puts "| #{m_over_c.to_s.rjust(3)} | #{loc_over_m.to_s.rjust(5)} |"
|
91
103
|
end
|
92
104
|
|
93
105
|
def print_code_test_stats
|
data/lib/rails/commands.rb
CHANGED
@@ -59,8 +59,8 @@ elsif File.exist?(code_or_file)
|
|
59
59
|
Kernel.load code_or_file
|
60
60
|
else
|
61
61
|
begin
|
62
|
-
eval(code_or_file, binding, __FILE__, __LINE__)
|
63
|
-
rescue SyntaxError,NameError
|
62
|
+
eval(code_or_file, binding, __FILE__, __LINE__)
|
63
|
+
rescue SyntaxError, NameError
|
64
64
|
$stderr.puts "Please specify a valid ruby command or the path of a script to run."
|
65
65
|
$stderr.puts "Run '#{$0} -h' for help."
|
66
66
|
exit 1
|
@@ -39,6 +39,7 @@ module Rails
|
|
39
39
|
paths.add "app", eager_load: true, glob: "{*,*/concerns}"
|
40
40
|
paths.add "app/assets", glob: "*"
|
41
41
|
paths.add "app/controllers", eager_load: true
|
42
|
+
paths.add "app/channels", eager_load: true, glob: "**/*_channel.rb"
|
42
43
|
paths.add "app/helpers", eager_load: true
|
43
44
|
paths.add "app/models", eager_load: true
|
44
45
|
paths.add "app/mailers", eager_load: true
|
data/lib/rails/gem_version.rb
CHANGED
data/lib/rails/generators.rb
CHANGED
@@ -105,7 +105,7 @@ module Rails
|
|
105
105
|
|
106
106
|
# Configure generators for API only applications. It basically hides
|
107
107
|
# everything that is usually browser related, such as assets and session
|
108
|
-
# migration generators, and completely disable
|
108
|
+
# migration generators, and completely disable helpers and assets
|
109
109
|
# so generators such as scaffold won't create them.
|
110
110
|
def self.api_only!
|
111
111
|
hide_namespaces "assets", "helper", "css", "js"
|
@@ -116,6 +116,10 @@ module Rails
|
|
116
116
|
helper: false,
|
117
117
|
template_engine: nil
|
118
118
|
)
|
119
|
+
|
120
|
+
if ARGV.first == 'mailer'
|
121
|
+
options[:rails].merge!(template_engine: :erb)
|
122
|
+
end
|
119
123
|
end
|
120
124
|
|
121
125
|
# Remove the color from output.
|
@@ -216,8 +216,9 @@ module Rails
|
|
216
216
|
log :rake, command
|
217
217
|
env = options[:env] || ENV["RAILS_ENV"] || 'development'
|
218
218
|
sudo = options[:sudo] && RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ ? 'sudo ' : ''
|
219
|
-
in_root { run("#{sudo}#{extify(:
|
219
|
+
in_root { run("#{sudo}#{extify(:rails)} #{command} RAILS_ENV=#{env}", verbose: false) }
|
220
220
|
end
|
221
|
+
alias :rails_command :rake
|
221
222
|
|
222
223
|
# Just run the capify command in root
|
223
224
|
#
|
@@ -63,6 +63,9 @@ module Rails
|
|
63
63
|
class_option :skip_spring, type: :boolean, default: false,
|
64
64
|
desc: "Don't install Spring application preloader"
|
65
65
|
|
66
|
+
class_option :skip_listen, type: :boolean, default: false,
|
67
|
+
desc: "Don't generate configuration that depends on the listen gem"
|
68
|
+
|
66
69
|
class_option :skip_javascript, type: :boolean, aliases: '-J', default: false,
|
67
70
|
desc: 'Skip JavaScript files'
|
68
71
|
|
@@ -308,16 +311,11 @@ module Rails
|
|
308
311
|
end
|
309
312
|
|
310
313
|
def coffee_gemfile_entry
|
311
|
-
|
312
|
-
if options.dev? || options.edge?
|
313
|
-
GemfileEntry.github 'coffee-rails', 'rails/coffee-rails', nil, comment
|
314
|
-
else
|
315
|
-
GemfileEntry.version 'coffee-rails', '~> 4.1.0', comment
|
316
|
-
end
|
314
|
+
GemfileEntry.version 'coffee-rails', '~> 4.1.0', 'Use CoffeeScript for .coffee assets and views'
|
317
315
|
end
|
318
316
|
|
319
317
|
def javascript_gemfile_entry
|
320
|
-
if options[:skip_javascript]
|
318
|
+
if options[:skip_javascript] || options[:skip_sprockets]
|
321
319
|
[]
|
322
320
|
else
|
323
321
|
gems = [coffee_gemfile_entry, javascript_runtime_gemfile_entry]
|
@@ -325,8 +323,8 @@ module Rails
|
|
325
323
|
"Use #{options[:javascript]} as the JavaScript library")
|
326
324
|
|
327
325
|
unless options[:skip_turbolinks]
|
328
|
-
gems << GemfileEntry.version("turbolinks",
|
329
|
-
"Turbolinks makes
|
326
|
+
gems << GemfileEntry.version("turbolinks", "~> 5.x",
|
327
|
+
"Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks")
|
330
328
|
end
|
331
329
|
|
332
330
|
gems
|
@@ -352,9 +350,9 @@ module Rails
|
|
352
350
|
|
353
351
|
def cable_gemfile_entry
|
354
352
|
return [] if options[:skip_action_cable]
|
355
|
-
comment = '
|
353
|
+
comment = 'Use Redis adapter to run Action Cable in production'
|
356
354
|
gems = []
|
357
|
-
gems << GemfileEntry.new("redis", '~> 3.0', comment)
|
355
|
+
gems << GemfileEntry.new("redis", '~> 3.0', comment, {}, true)
|
358
356
|
gems
|
359
357
|
end
|
360
358
|
|
@@ -390,6 +388,14 @@ module Rails
|
|
390
388
|
!options[:skip_spring] && !options.dev? && Process.respond_to?(:fork) && !RUBY_PLATFORM.include?("cygwin")
|
391
389
|
end
|
392
390
|
|
391
|
+
def depend_on_listen?
|
392
|
+
!options[:skip_listen] && os_supports_listen_out_of_the_box?
|
393
|
+
end
|
394
|
+
|
395
|
+
def os_supports_listen_out_of_the_box?
|
396
|
+
RbConfig::CONFIG['host_os'] =~ /darwin|linux/
|
397
|
+
end
|
398
|
+
|
393
399
|
def run_bundle
|
394
400
|
bundle_command('install') if bundle_install?
|
395
401
|
end
|
@@ -91,6 +91,7 @@ module Rails
|
|
91
91
|
cookie_serializer_config_exist = File.exist?('config/initializers/cookies_serializer.rb')
|
92
92
|
callback_terminator_config_exist = File.exist?('config/initializers/callback_terminator.rb')
|
93
93
|
active_record_belongs_to_required_by_default_config_exist = File.exist?('config/initializers/active_record_belongs_to_required_by_default.rb')
|
94
|
+
action_cable_config_exist = File.exist?('config/cable.yml')
|
94
95
|
|
95
96
|
config
|
96
97
|
|
@@ -105,6 +106,10 @@ module Rails
|
|
105
106
|
unless active_record_belongs_to_required_by_default_config_exist
|
106
107
|
remove_file 'config/initializers/active_record_belongs_to_required_by_default.rb'
|
107
108
|
end
|
109
|
+
|
110
|
+
unless action_cable_config_exist
|
111
|
+
template 'config/cable.yml'
|
112
|
+
end
|
108
113
|
end
|
109
114
|
|
110
115
|
def database_yml
|
@@ -276,9 +281,9 @@ module Rails
|
|
276
281
|
end
|
277
282
|
end
|
278
283
|
|
279
|
-
def
|
284
|
+
def delete_application_layout_file_if_api_option
|
280
285
|
if options[:api]
|
281
|
-
|
286
|
+
remove_file 'app/views/layouts/application.html.erb'
|
282
287
|
end
|
283
288
|
end
|
284
289
|
|
@@ -38,9 +38,15 @@ group :development do
|
|
38
38
|
gem 'web-console', '~> 3.0'
|
39
39
|
<%- end -%>
|
40
40
|
<%- end -%>
|
41
|
+
<% if depend_on_listen? -%>
|
42
|
+
gem 'listen', '~> 3.0.5'
|
43
|
+
<% end -%>
|
41
44
|
<% if spring_install? -%>
|
42
45
|
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
43
46
|
gem 'spring'
|
47
|
+
<% if depend_on_listen? -%>
|
48
|
+
gem 'spring-watcher-listen', '~> 2.0.0'
|
49
|
+
<% end -%>
|
44
50
|
<% end -%>
|
45
51
|
end
|
46
52
|
<% end -%>
|
@@ -11,8 +11,8 @@
|
|
11
11
|
<%%= stylesheet_link_tag 'application', media: 'all' %>
|
12
12
|
<%- else -%>
|
13
13
|
<%- if gemfile_entries.any? { |m| m.name == 'turbolinks' } -%>
|
14
|
-
<%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' =>
|
15
|
-
<%%= javascript_include_tag 'application', 'data-turbolinks-track' =>
|
14
|
+
<%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => 'reload' %>
|
15
|
+
<%%= javascript_include_tag 'application', 'data-turbolinks-track' => 'reload' %>
|
16
16
|
<%- else -%>
|
17
17
|
<%%= stylesheet_link_tag 'application', media: 'all' %>
|
18
18
|
<%%= javascript_include_tag 'application' %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# PostgreSQL. Versions
|
1
|
+
# PostgreSQL. Versions 9.1 and up are supported.
|
2
2
|
#
|
3
3
|
# Install the pg driver:
|
4
4
|
# gem install pg
|
@@ -19,7 +19,7 @@ default: &default
|
|
19
19
|
encoding: unicode
|
20
20
|
# For details on connection pooling, see rails configuration guide
|
21
21
|
# http://guides.rubyonrails.org/configuring.html#database-pooling
|
22
|
-
pool: 5
|
22
|
+
pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
23
23
|
|
24
24
|
development:
|
25
25
|
<<: *default
|
@@ -15,12 +15,22 @@ Rails.application.configure do
|
|
15
15
|
# Enable/disable caching. By default caching is disabled.
|
16
16
|
if Rails.root.join('tmp/caching-dev.txt').exist?
|
17
17
|
config.action_controller.perform_caching = true
|
18
|
+
|
19
|
+
<%- unless options.skip_action_mailer? -%>
|
20
|
+
config.action_mailer.perform_caching = false
|
21
|
+
<%- end -%>
|
22
|
+
|
18
23
|
config.cache_store = :memory_store
|
19
24
|
config.public_file_server.headers = {
|
20
25
|
'Cache-Control' => 'public, max-age=172800'
|
21
26
|
}
|
22
27
|
else
|
23
28
|
config.action_controller.perform_caching = false
|
29
|
+
|
30
|
+
<%- unless options.skip_action_mailer? -%>
|
31
|
+
config.action_mailer.perform_caching = false
|
32
|
+
<%- end -%>
|
33
|
+
|
24
34
|
config.cache_store = :null_store
|
25
35
|
end
|
26
36
|
<%- unless options.skip_action_mailer? -%>
|
@@ -58,5 +68,5 @@ Rails.application.configure do
|
|
58
68
|
|
59
69
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
60
70
|
# routes, locales, etc. This feature depends on the listen gem.
|
61
|
-
# config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
71
|
+
<%= '# ' unless depend_on_listen? %>config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
62
72
|
end
|
@@ -60,6 +60,10 @@ Rails.application.configure do
|
|
60
60
|
# require 'syslog/logger'
|
61
61
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
62
62
|
|
63
|
+
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
64
|
+
config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
|
65
|
+
end
|
66
|
+
|
63
67
|
# Use a different cache store in production.
|
64
68
|
# config.cache_store = :mem_cache_store
|
65
69
|
|
@@ -67,6 +71,7 @@ Rails.application.configure do
|
|
67
71
|
# config.active_job.queue_adapter = :resque
|
68
72
|
# config.active_job.queue_name_prefix = "<%= app_name %>_#{Rails.env}"
|
69
73
|
<%- unless options.skip_action_mailer? -%>
|
74
|
+
config.action_mailer.perform_caching = false
|
70
75
|
|
71
76
|
# Ignore bad email addresses and do not raise email delivery errors.
|
72
77
|
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
@@ -28,6 +28,7 @@ Rails.application.configure do
|
|
28
28
|
# Disable request forgery protection in test environment.
|
29
29
|
config.action_controller.allow_forgery_protection = false
|
30
30
|
<%- unless options.skip_action_mailer? -%>
|
31
|
+
config.action_mailer.perform_caching = false
|
31
32
|
|
32
33
|
# Tell Action Mailer not to deliver emails to the real world.
|
33
34
|
# The :test delivery method accumulates sent emails in the
|
@@ -35,9 +36,6 @@ Rails.application.configure do
|
|
35
36
|
config.action_mailer.delivery_method = :test
|
36
37
|
<%- end -%>
|
37
38
|
|
38
|
-
# Randomize the order test cases are executed.
|
39
|
-
config.active_support.test_order = :random
|
40
|
-
|
41
39
|
# Print deprecation notices to the stderr.
|
42
40
|
config.active_support.deprecation = :stderr
|
43
41
|
|
File without changes
|
File without changes
|
@@ -90,6 +90,7 @@ task default: :test
|
|
90
90
|
opts[:force] = force
|
91
91
|
opts[:skip_bundle] = true
|
92
92
|
opts[:api] = options.api?
|
93
|
+
opts[:skip_listen] = true
|
93
94
|
|
94
95
|
invoke Rails::Generators::AppGenerator,
|
95
96
|
[ File.expand_path(dummy_path, destination_root) ], opts
|
@@ -287,10 +288,6 @@ task default: :test
|
|
287
288
|
|
288
289
|
protected
|
289
290
|
|
290
|
-
def app_templates_dir
|
291
|
-
"../../app/templates"
|
292
|
-
end
|
293
|
-
|
294
291
|
def create_dummy_app(path = nil)
|
295
292
|
dummy_path(path) if path
|
296
293
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<%- if attribute.password_digest? -%>
|
7
7
|
password_digest: <%%= BCrypt::Password.create('secret') %>
|
8
8
|
<%- elsif attribute.reference? -%>
|
9
|
-
<%= yaml_key_value(attribute.column_name.sub(/_id$/, ''), attribute.default) %>
|
9
|
+
<%= yaml_key_value(attribute.column_name.sub(/_id$/, ''), attribute.default || name) %>
|
10
10
|
<%- else -%>
|
11
11
|
<%= yaml_key_value(attribute.column_name, attribute.default) %>
|
12
12
|
<%- end -%>
|
data/lib/rails/rack/logger.rb
CHANGED
data/lib/rails/railtie.rb
CHANGED
@@ -183,7 +183,7 @@ module Rails
|
|
183
183
|
end
|
184
184
|
|
185
185
|
protected
|
186
|
-
def generate_railtie_name(string)
|
186
|
+
def generate_railtie_name(string) #:nodoc:
|
187
187
|
ActiveSupport::Inflector.underscore(string).tr("/", "_")
|
188
188
|
end
|
189
189
|
|
@@ -200,21 +200,24 @@ module Rails
|
|
200
200
|
|
201
201
|
delegate :railtie_name, to: :class
|
202
202
|
|
203
|
-
def initialize
|
203
|
+
def initialize #:nodoc:
|
204
204
|
if self.class.abstract_railtie?
|
205
205
|
raise "#{self.class.name} is abstract, you cannot instantiate it directly."
|
206
206
|
end
|
207
207
|
end
|
208
208
|
|
209
|
-
def configure(&block)
|
209
|
+
def configure(&block) #:nodoc:
|
210
210
|
instance_eval(&block)
|
211
211
|
end
|
212
212
|
|
213
|
+
# This is used to create the <tt>config</tt> object on Railties, an instance of
|
214
|
+
# Railtie::Configuration, that is used by Railties and Application to store
|
215
|
+
# related configuration.
|
213
216
|
def config
|
214
217
|
@config ||= Railtie::Configuration.new
|
215
218
|
end
|
216
219
|
|
217
|
-
def railtie_namespace
|
220
|
+
def railtie_namespace #:nodoc:
|
218
221
|
@railtie_namespace ||= self.class.parents.detect { |n| n.respond_to?(:railtie_namespace) }
|
219
222
|
end
|
220
223
|
|
data/lib/rails/tasks.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
namespace :dev do
|
2
|
+
desc 'Toggle development mode caching on/off'
|
3
|
+
task :cache do
|
4
|
+
if File.exist? 'tmp/caching-dev.txt'
|
5
|
+
File.delete 'tmp/caching-dev.txt'
|
6
|
+
puts 'Development mode is no longer being cached.'
|
7
|
+
else
|
8
|
+
FileUtils.touch 'tmp/caching-dev.txt'
|
9
|
+
puts 'Development mode is now being cached.'
|
10
|
+
end
|
11
|
+
|
12
|
+
FileUtils.touch 'tmp/restart.txt'
|
13
|
+
end
|
14
|
+
end
|
@@ -45,7 +45,7 @@ namespace :rails do
|
|
45
45
|
@app_generator ||= begin
|
46
46
|
require 'rails/generators'
|
47
47
|
require 'rails/generators/rails/app/app_generator'
|
48
|
-
gen = Rails::Generators::AppGenerator.new ["rails"], { with_dispatchers: true },
|
48
|
+
gen = Rails::Generators::AppGenerator.new ["rails"], { with_dispatchers: true, api: !!Rails.application.config.api_only },
|
49
49
|
destination_root: Rails.root
|
50
50
|
File.exist?(Rails.root.join("config", "application.rb")) ?
|
51
51
|
gen.send(:app_const) : gen.send(:valid_const?)
|
data/lib/rails/tasks/routes.rake
CHANGED
@@ -2,15 +2,15 @@ require 'active_support/deprecation'
|
|
2
2
|
require 'active_support/core_ext/string/strip' # for strip_heredoc
|
3
3
|
require 'optparse'
|
4
4
|
|
5
|
-
desc 'Print out all defined routes in match order, with names. Target specific controller with
|
5
|
+
desc 'Print out all defined routes in match order, with names. Target specific controller with -c option, or grep routes using -g option'
|
6
6
|
task routes: :environment do
|
7
7
|
all_routes = Rails.application.routes.routes
|
8
8
|
require 'action_dispatch/routing/inspector'
|
9
9
|
inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
|
10
10
|
if ARGV.any?{ |argv| argv.start_with? 'CONTROLLER' }
|
11
11
|
puts <<-eow.strip_heredoc
|
12
|
-
Passing `CONTROLLER` to `bin/
|
13
|
-
Please use `bin/
|
12
|
+
Passing `CONTROLLER` to `bin/rails routes` is deprecated and will be removed in Rails 5.1.
|
13
|
+
Please use `bin/rails routes -c controller_name` instead.
|
14
14
|
eow
|
15
15
|
end
|
16
16
|
|
@@ -18,12 +18,12 @@ task routes: :environment do
|
|
18
18
|
routes_filter = { controller: ENV['CONTROLLER'] } if ENV['CONTROLLER']
|
19
19
|
|
20
20
|
OptionParser.new do |opts|
|
21
|
-
opts.banner = "Usage:
|
22
|
-
opts.on("-c
|
21
|
+
opts.banner = "Usage: rails routes [options]"
|
22
|
+
opts.on("-c CONTROLLER") do |controller|
|
23
23
|
routes_filter = { controller: controller }
|
24
24
|
end
|
25
25
|
|
26
|
-
opts.on("-g
|
26
|
+
opts.on("-g PATTERN") do |pattern|
|
27
27
|
routes_filter = pattern
|
28
28
|
end
|
29
29
|
|
@@ -13,9 +13,12 @@ module Rails
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class CompositeFilter # :nodoc:
|
16
|
+
attr_reader :named_filter
|
17
|
+
|
16
18
|
def initialize(runnable, filter, patterns)
|
17
19
|
@runnable = runnable
|
18
|
-
@
|
20
|
+
@named_filter = derive_named_filter(filter)
|
21
|
+
@filters = [ @named_filter, *derive_line_filters(patterns) ].compact
|
19
22
|
end
|
20
23
|
|
21
24
|
# Minitest uses === to find matching filters.
|
@@ -24,9 +27,14 @@ module Rails
|
|
24
27
|
end
|
25
28
|
|
26
29
|
private
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
+
def derive_named_filter(filter)
|
31
|
+
if filter.respond_to?(:named_filter)
|
32
|
+
filter.named_filter
|
33
|
+
elsif filter =~ %r%/(.*)/% # Regexp filtering copied from Minitest.
|
34
|
+
Regexp.new $1
|
35
|
+
elsif filter.is_a?(String)
|
36
|
+
filter
|
37
|
+
end
|
30
38
|
end
|
31
39
|
|
32
40
|
def derive_line_filters(patterns)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "active_support/core_ext/module/attribute_accessors"
|
2
2
|
require "rails/test_unit/reporter"
|
3
3
|
require "rails/test_unit/test_requirer"
|
4
|
+
require 'shellwords'
|
4
5
|
|
5
6
|
module Minitest
|
6
7
|
class SuppressedSummaryReporter < SummaryReporter
|
@@ -42,7 +43,7 @@ module Minitest
|
|
42
43
|
end
|
43
44
|
|
44
45
|
opts.on("-f", "--fail-fast",
|
45
|
-
"Abort test run on first failure") do
|
46
|
+
"Abort test run on first failure or error") do
|
46
47
|
options[:fail_fast] = true
|
47
48
|
end
|
48
49
|
|
@@ -60,11 +61,13 @@ module Minitest
|
|
60
61
|
# as the patterns would also contain the other Rake tasks.
|
61
62
|
def self.rake_run(patterns) # :nodoc:
|
62
63
|
@rake_patterns = patterns
|
63
|
-
passed = run
|
64
|
+
passed = run(Shellwords.split(ENV['TESTOPTS'] || ''))
|
64
65
|
exit passed unless passed
|
65
66
|
passed
|
66
67
|
end
|
67
68
|
|
69
|
+
# Owes great inspiration to test runner trailblazers like RSpec,
|
70
|
+
# minitest-reporters, maxitest and others.
|
68
71
|
def self.plugin_rails_init(options)
|
69
72
|
self.run_with_rails_extension = true
|
70
73
|
|
@@ -18,13 +18,13 @@ module Rails
|
|
18
18
|
if output_inline? && result.failure && (!result.skipped? || options[:verbose])
|
19
19
|
io.puts
|
20
20
|
io.puts
|
21
|
-
io.puts
|
21
|
+
io.puts color_output(result, by: result)
|
22
22
|
io.puts
|
23
23
|
io.puts format_rerun_snippet(result)
|
24
24
|
io.puts
|
25
25
|
end
|
26
26
|
|
27
|
-
if fail_fast? && result.failure && !result.
|
27
|
+
if fail_fast? && result.failure && !result.skipped?
|
28
28
|
raise Interrupt
|
29
29
|
end
|
30
30
|
end
|
@@ -66,21 +66,9 @@ module Rails
|
|
66
66
|
"%s#%s = %.2f s = %s" % [result.class, result.name, result.time, result.result_code]
|
67
67
|
end
|
68
68
|
|
69
|
-
def format_failures(result)
|
70
|
-
result.failures.map do |failure|
|
71
|
-
"#{failure.result_label}:\n#{result.class}##{result.name}:\n#{failure.message}\n"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
69
|
def format_rerun_snippet(result)
|
76
|
-
|
77
|
-
|
78
|
-
assertion_path = $1
|
79
|
-
else
|
80
|
-
assertion_path = result.method(result.name).source_location.join(':')
|
81
|
-
end
|
82
|
-
|
83
|
-
"#{self.executable} #{relative_path_for(assertion_path)}"
|
70
|
+
location, line = result.method(result.name).source_location
|
71
|
+
"#{self.executable} #{relative_path_for(location)}:#{line}"
|
84
72
|
end
|
85
73
|
|
86
74
|
def app_root
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railties
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.0.
|
4
|
+
version: 5.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.0.0.
|
19
|
+
version: 5.0.0.beta3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5.0.0.
|
26
|
+
version: 5.0.0.beta3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.0.0.
|
33
|
+
version: 5.0.0.beta3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.0.0.
|
40
|
+
version: 5.0.0.beta3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,14 +92,14 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 5.0.0.
|
95
|
+
version: 5.0.0.beta3
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - '='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 5.0.0.
|
102
|
+
version: 5.0.0.beta3
|
103
103
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
104
104
|
email: david@loudthinking.com
|
105
105
|
executables:
|
@@ -135,7 +135,6 @@ files:
|
|
135
135
|
- lib/rails/commands/console_helper.rb
|
136
136
|
- lib/rails/commands/dbconsole.rb
|
137
137
|
- lib/rails/commands/destroy.rb
|
138
|
-
- lib/rails/commands/dev_cache.rb
|
139
138
|
- lib/rails/commands/generate.rb
|
140
139
|
- lib/rails/commands/plugin.rb
|
141
140
|
- lib/rails/commands/rake_proxy.rb
|
@@ -244,6 +243,8 @@ files:
|
|
244
243
|
- lib/rails/generators/rails/app/templates/public/404.html
|
245
244
|
- lib/rails/generators/rails/app/templates/public/422.html
|
246
245
|
- lib/rails/generators/rails/app/templates/public/500.html
|
246
|
+
- lib/rails/generators/rails/app/templates/public/apple-touch-icon-precomposed.png
|
247
|
+
- lib/rails/generators/rails/app/templates/public/apple-touch-icon.png
|
247
248
|
- lib/rails/generators/rails/app/templates/public/favicon.ico
|
248
249
|
- lib/rails/generators/rails/app/templates/public/robots.txt
|
249
250
|
- lib/rails/generators/rails/app/templates/test/test_helper.rb
|
@@ -354,6 +355,7 @@ files:
|
|
354
355
|
- lib/rails/source_annotation_extractor.rb
|
355
356
|
- lib/rails/tasks.rb
|
356
357
|
- lib/rails/tasks/annotations.rake
|
358
|
+
- lib/rails/tasks/dev.rake
|
357
359
|
- lib/rails/tasks/engine.rake
|
358
360
|
- lib/rails/tasks/framework.rake
|
359
361
|
- lib/rails/tasks/initializers.rake
|
@@ -402,9 +404,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
402
404
|
version: 1.3.1
|
403
405
|
requirements: []
|
404
406
|
rubyforge_project:
|
405
|
-
rubygems_version: 2.5.
|
407
|
+
rubygems_version: 2.5.1
|
406
408
|
signing_key:
|
407
409
|
specification_version: 4
|
408
410
|
summary: Tools for creating, working with, and running Rails applications.
|
409
411
|
test_files: []
|
410
|
-
has_rdoc:
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'rails/command'
|
2
|
-
|
3
|
-
module Rails
|
4
|
-
module Commands
|
5
|
-
# This is a wrapper around the Rails dev:cache command
|
6
|
-
class DevCache < Command
|
7
|
-
set_banner :dev_cache, 'Toggle development mode caching on/off'
|
8
|
-
def dev_cache
|
9
|
-
if File.exist? 'tmp/caching-dev.txt'
|
10
|
-
File.delete 'tmp/caching-dev.txt'
|
11
|
-
puts 'Development mode is no longer being cached.'
|
12
|
-
else
|
13
|
-
FileUtils.touch 'tmp/caching-dev.txt'
|
14
|
-
puts 'Development mode is now being cached.'
|
15
|
-
end
|
16
|
-
|
17
|
-
FileUtils.touch 'tmp/restart.txt'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|