railties 5.1.0.rc1 → 5.1.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -5
- data/lib/rails/application.rb +3 -1
- data/lib/rails/application/bootstrap.rb +0 -1
- data/lib/rails/application/configuration.rb +2 -7
- data/lib/rails/code_statistics.rb +2 -1
- data/lib/rails/commands/destroy/destroy_command.rb +3 -0
- data/lib/rails/commands/runner/runner_command.rb +3 -2
- data/lib/rails/commands/server/server_command.rb +4 -2
- data/lib/rails/gem_version.rb +1 -1
- data/lib/rails/generators/app_base.rb +7 -10
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb +8 -8
- data/lib/rails/generators/named_base.rb +4 -0
- data/lib/rails/generators/rails/app/app_generator.rb +35 -6
- data/lib/rails/generators/rails/app/templates/Gemfile +1 -1
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +1 -4
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css +1 -1
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +1 -1
- data/lib/rails/generators/rails/app/templates/bin/update.tt +1 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb +4 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_1.rb.tt +3 -0
- data/lib/rails/generators/rails/app/templates/config/secrets.yml +2 -2
- data/lib/rails/generators/rails/app/templates/public/404.html +6 -6
- data/lib/rails/generators/rails/app/templates/public/422.html +6 -6
- data/lib/rails/generators/rails/app/templates/public/500.html +6 -6
- data/lib/rails/paths.rb +8 -1
- data/lib/rails/secrets.rb +2 -8
- data/lib/rails/tasks/framework.rake +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6ecf54ff57387656250337a743947b5271bf35b
|
4
|
+
data.tar.gz: d7a2588e7d7bde11603c086948b7e26e9e480628
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ac43ff8d469247946bb5b28bef288e0bf7689338c5ae28f244aa7e93c0f467d3f5c2fe9de579aae1b19b6cad2b5efb0d5ba89e4e4b09ecdc49ef1c57770be97
|
7
|
+
data.tar.gz: fcae7e8678c20e6abe4d8614fb0f571fbd6b459cba4eb26b6dd31511949467596609b2739684df4c5a51a04216c4cad60ea0b10632a0d41c5ff77971dc051d64
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
## Rails 5.1.0.rc2 (April 20, 2017) ##
|
2
|
+
|
3
|
+
* Namespace error pages' CSS selectors to stop the styles from bleeding into other pages
|
4
|
+
when using Turbolinks.
|
5
|
+
|
6
|
+
*Jan Krutisch*
|
7
|
+
|
8
|
+
* Raise a error when using a bad symlink
|
9
|
+
|
10
|
+
Previously bad symlinks (where the link destination doesn't exist)
|
11
|
+
would be silent ignored and lead to hard to diagnose problems as
|
12
|
+
the non-existence isn't readily apparent.
|
13
|
+
|
14
|
+
*Richard Schneeman*
|
15
|
+
|
16
|
+
* Remove -j (--javascript) option from `rails new` command.
|
17
|
+
|
18
|
+
*claudiob*
|
19
|
+
|
20
|
+
* Specify form field ids when generating a scaffold.
|
21
|
+
|
22
|
+
This makes sure that the labels are linked up with the fields. The
|
23
|
+
regression was introduced when the template was switched to
|
24
|
+
`form_with`.
|
25
|
+
|
26
|
+
*Yves Senn*
|
27
|
+
|
28
|
+
|
1
29
|
## Rails 5.1.0.rc1 (March 20, 2017) ##
|
2
30
|
|
3
31
|
* Add `app:update` task to engines.
|
@@ -189,11 +217,6 @@
|
|
189
217
|
|
190
218
|
*Rafael Mendonça França*
|
191
219
|
|
192
|
-
* Default `config.assets.quiet = true` in the development environment. Suppress
|
193
|
-
logging of assets requests by default.
|
194
|
-
|
195
|
-
*Kevin McPhillips*
|
196
|
-
|
197
220
|
* Ensure `/rails/info` routes match in development for apps with a catch-all globbing route.
|
198
221
|
|
199
222
|
*Nicholas Firth-McCoy*
|
data/lib/rails/application.rb
CHANGED
@@ -386,7 +386,9 @@ module Rails
|
|
386
386
|
def secrets
|
387
387
|
@secrets ||= begin
|
388
388
|
secrets = ActiveSupport::OrderedOptions.new
|
389
|
-
|
389
|
+
files = config.paths["config/secrets"].existent
|
390
|
+
files = files.reject { |path| path.end_with?(".enc") } unless config.read_encrypted_secrets
|
391
|
+
secrets.merge! Rails::Secrets.parse(files, env: Rails.env)
|
390
392
|
|
391
393
|
# Fallback to config.secret_key_base if secrets.secret_key_base isn't set
|
392
394
|
secrets.secret_key_base ||= config.secret_key_base
|
@@ -14,9 +14,8 @@ module Rails
|
|
14
14
|
:ssl_options, :public_file_server,
|
15
15
|
:session_options, :time_zone, :reload_classes_only_on_change,
|
16
16
|
:beginning_of_week, :filter_redirect, :x, :enable_dependency_loading,
|
17
|
-
:read_encrypted_secrets
|
17
|
+
:read_encrypted_secrets, :log_level
|
18
18
|
|
19
|
-
attr_writer :log_level
|
20
19
|
attr_reader :encoding, :api_only
|
21
20
|
|
22
21
|
def initialize(*)
|
@@ -35,7 +34,7 @@ module Rails
|
|
35
34
|
@session_store = nil
|
36
35
|
@time_zone = "UTC"
|
37
36
|
@beginning_of_week = :monday
|
38
|
-
@log_level =
|
37
|
+
@log_level = :debug
|
39
38
|
@generators = app_generators
|
40
39
|
@cache_store = [ :file_store, "#{root}/tmp/cache/" ]
|
41
40
|
@railties_order = [:all]
|
@@ -149,10 +148,6 @@ module Rails
|
|
149
148
|
raise e, "Cannot load `Rails.application.database_configuration`:\n#{e.message}", e.backtrace
|
150
149
|
end
|
151
150
|
|
152
|
-
def log_level
|
153
|
-
@log_level ||= (Rails.env.production? ? :info : :debug)
|
154
|
-
end
|
155
|
-
|
156
151
|
def colorize_logging
|
157
152
|
ActiveSupport::LogSubscriber.colorize_logging
|
158
153
|
end
|
@@ -16,7 +16,7 @@ module Rails
|
|
16
16
|
"#{super} [<'Some.ruby(code)'> | <filename.rb>]"
|
17
17
|
end
|
18
18
|
|
19
|
-
def perform(code_or_file = nil, *
|
19
|
+
def perform(code_or_file = nil, *command_argv)
|
20
20
|
unless code_or_file
|
21
21
|
help
|
22
22
|
exit 1
|
@@ -27,9 +27,10 @@ module Rails
|
|
27
27
|
require_application_and_environment!
|
28
28
|
Rails.application.load_runner
|
29
29
|
|
30
|
+
ARGV.replace(command_argv)
|
31
|
+
|
30
32
|
if File.exist?(code_or_file)
|
31
33
|
$0 = code_or_file
|
32
|
-
ARGV.replace(file_argv)
|
33
34
|
Kernel.load code_or_file
|
34
35
|
else
|
35
36
|
begin
|
@@ -188,10 +188,12 @@ module Rails
|
|
188
188
|
end
|
189
189
|
|
190
190
|
def host
|
191
|
-
|
191
|
+
if options[:binding]
|
192
|
+
options[:binding]
|
193
|
+
else
|
192
194
|
default_host = environment == "development" ? "localhost" : "0.0.0.0"
|
195
|
+
ENV.fetch("HOST", default_host)
|
193
196
|
end
|
194
|
-
ENV.fetch("HOST", default_host)
|
195
197
|
end
|
196
198
|
|
197
199
|
def environment
|
data/lib/rails/gem_version.rb
CHANGED
@@ -13,6 +13,7 @@ module Rails
|
|
13
13
|
DATABASES = %w( mysql postgresql sqlite3 oracle frontbase ibm_db sqlserver )
|
14
14
|
JDBC_DATABASES = %w( jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc )
|
15
15
|
DATABASES.concat(JDBC_DATABASES)
|
16
|
+
WEBPACKS = %w( react vue angular )
|
16
17
|
|
17
18
|
attr_accessor :rails_template
|
18
19
|
add_shebang_option!
|
@@ -30,11 +31,8 @@ module Rails
|
|
30
31
|
class_option :database, type: :string, aliases: "-d", default: "sqlite3",
|
31
32
|
desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
32
33
|
|
33
|
-
class_option :javascript, type: :string, aliases: "-j",
|
34
|
-
desc: "Preconfigure for selected JavaScript library"
|
35
|
-
|
36
34
|
class_option :webpack, type: :string, default: nil,
|
37
|
-
desc: "Preconfigure for app-like JavaScript with Webpack"
|
35
|
+
desc: "Preconfigure for app-like JavaScript with Webpack (options: #{WEBPACKS.join('/')})"
|
38
36
|
|
39
37
|
class_option :skip_yarn, type: :boolean, default: false,
|
40
38
|
desc: "Don't use Yarn for managing JavaScript dependencies"
|
@@ -305,7 +303,7 @@ module Rails
|
|
305
303
|
return [] if options[:skip_sprockets]
|
306
304
|
|
307
305
|
gems = []
|
308
|
-
gems << GemfileEntry.
|
306
|
+
gems << GemfileEntry.version("sass-rails", "~> 5.0",
|
309
307
|
"Use SCSS for stylesheets")
|
310
308
|
|
311
309
|
if !options[:skip_javascript]
|
@@ -340,11 +338,6 @@ module Rails
|
|
340
338
|
gems = [javascript_runtime_gemfile_entry]
|
341
339
|
gems << coffee_gemfile_entry unless options[:skip_coffee]
|
342
340
|
|
343
|
-
if options[:javascript]
|
344
|
-
gems << GemfileEntry.version("#{options[:javascript]}-rails", nil,
|
345
|
-
"Use #{options[:javascript]} as the JavaScript library")
|
346
|
-
end
|
347
|
-
|
348
341
|
unless options[:skip_turbolinks]
|
349
342
|
gems << GemfileEntry.version("turbolinks", "~> 5",
|
350
343
|
"Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks")
|
@@ -411,6 +404,10 @@ module Rails
|
|
411
404
|
!options[:skip_spring] && !options.dev? && Process.respond_to?(:fork) && !RUBY_PLATFORM.include?("cygwin")
|
412
405
|
end
|
413
406
|
|
407
|
+
def depends_on_system_test?
|
408
|
+
!(options[:skip_system_test] || options[:skip_test] || options[:api])
|
409
|
+
end
|
410
|
+
|
414
411
|
def depend_on_listen?
|
415
412
|
!options[:skip_listen] && os_supports_listen_out_of_the_box?
|
416
413
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%%= form_with(model: <%= singular_table_name %>, local: true) do |
|
1
|
+
<%%= form_with(model: <%= singular_table_name %>, local: true) do |form| %>
|
2
2
|
<%% if <%= singular_table_name %>.errors.any? %>
|
3
3
|
<div id="error_explanation">
|
4
4
|
<h2><%%= pluralize(<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
|
@@ -14,21 +14,21 @@
|
|
14
14
|
<% attributes.each do |attribute| -%>
|
15
15
|
<div class="field">
|
16
16
|
<% if attribute.password_digest? -%>
|
17
|
-
<%%=
|
18
|
-
<%%=
|
17
|
+
<%%= form.label :password %>
|
18
|
+
<%%= form.password_field :password, id: :<%= field_id(:password) %> %>
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div class="field">
|
22
|
-
<%%=
|
23
|
-
<%%=
|
22
|
+
<%%= form.label :password_confirmation %>
|
23
|
+
<%%= form.password_field :password_confirmation, id: :<%= field_id(:password_confirmation) %> %>
|
24
24
|
<% else -%>
|
25
|
-
<%%=
|
26
|
-
<%%=
|
25
|
+
<%%= form.label :<%= attribute.column_name %> %>
|
26
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, id: :<%= field_id(attribute.column_name) %> %>
|
27
27
|
<% end -%>
|
28
28
|
</div>
|
29
29
|
|
30
30
|
<% end -%>
|
31
31
|
<div class="actions">
|
32
|
-
<%%=
|
32
|
+
<%%= form.submit %>
|
33
33
|
</div>
|
34
34
|
<%% end %>
|
@@ -149,6 +149,10 @@ module Rails
|
|
149
149
|
"new_#{singular_table_name}_url"
|
150
150
|
end
|
151
151
|
|
152
|
+
def field_id(attribute_name)
|
153
|
+
[singular_table_name, attribute_name].join("_")
|
154
|
+
end
|
155
|
+
|
152
156
|
def singular_table_name # :doc:
|
153
157
|
@singular_table_name ||= (pluralize_table_names? ? table_name.singularize : table_name)
|
154
158
|
end
|
@@ -84,6 +84,16 @@ module Rails
|
|
84
84
|
chmod "bin", 0755 & ~File.umask, verbose: false
|
85
85
|
end
|
86
86
|
|
87
|
+
def bin_when_updating
|
88
|
+
bin_yarn_exist = File.exist?("bin/yarn")
|
89
|
+
|
90
|
+
bin
|
91
|
+
|
92
|
+
if options[:api] && !bin_yarn_exist
|
93
|
+
remove_file "bin/yarn"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
87
97
|
def config
|
88
98
|
empty_directory "config"
|
89
99
|
|
@@ -106,11 +116,11 @@ module Rails
|
|
106
116
|
cookie_serializer_config_exist = File.exist?("config/initializers/cookies_serializer.rb")
|
107
117
|
action_cable_config_exist = File.exist?("config/cable.yml")
|
108
118
|
rack_cors_config_exist = File.exist?("config/initializers/cors.rb")
|
119
|
+
assets_config_exist = File.exist?("config/initializers/assets.rb")
|
120
|
+
new_framework_defaults_5_1_exist = File.exist?("config/initializers/new_framework_defaults_5_1.rb")
|
109
121
|
|
110
122
|
config
|
111
123
|
|
112
|
-
gsub_file "config/environments/development.rb", /^(\s+)config\.file_watcher/, '\1# config.file_watcher'
|
113
|
-
|
114
124
|
unless cookie_serializer_config_exist
|
115
125
|
gsub_file "config/initializers/cookies_serializer.rb", /json(?!,)/, "marshal"
|
116
126
|
end
|
@@ -122,6 +132,22 @@ module Rails
|
|
122
132
|
unless rack_cors_config_exist
|
123
133
|
remove_file "config/initializers/cors.rb"
|
124
134
|
end
|
135
|
+
|
136
|
+
if options[:api]
|
137
|
+
unless cookie_serializer_config_exist
|
138
|
+
remove_file "config/initializers/cookies_serializer.rb"
|
139
|
+
end
|
140
|
+
|
141
|
+
unless assets_config_exist
|
142
|
+
remove_file "config/initializers/assets.rb"
|
143
|
+
end
|
144
|
+
|
145
|
+
# Sprockets owns the only new default for 5.1:
|
146
|
+
# In API-only Applications, we don't want the file.
|
147
|
+
unless new_framework_defaults_5_1_exist
|
148
|
+
remove_file "config/initializers/new_framework_defaults_5_1.rb"
|
149
|
+
end
|
150
|
+
end
|
125
151
|
end
|
126
152
|
|
127
153
|
def database_yml
|
@@ -232,6 +258,11 @@ module Rails
|
|
232
258
|
build(:bin)
|
233
259
|
end
|
234
260
|
|
261
|
+
def update_bin_files
|
262
|
+
build(:bin_when_updating)
|
263
|
+
end
|
264
|
+
remove_task :update_bin_files
|
265
|
+
|
235
266
|
def create_config_files
|
236
267
|
build(:config)
|
237
268
|
end
|
@@ -277,7 +308,7 @@ module Rails
|
|
277
308
|
end
|
278
309
|
|
279
310
|
def create_system_test_files
|
280
|
-
build(:system_test)
|
311
|
+
build(:system_test) if depends_on_system_test?
|
281
312
|
end
|
282
313
|
|
283
314
|
def create_tmp_files
|
@@ -372,9 +403,7 @@ module Rails
|
|
372
403
|
end
|
373
404
|
|
374
405
|
def delete_new_framework_defaults
|
375
|
-
|
376
|
-
# we don't want the file.
|
377
|
-
unless options[:update] && !options[:skip_sprockets]
|
406
|
+
unless options[:update]
|
378
407
|
remove_file "config/initializers/new_framework_defaults_5_1.rb"
|
379
408
|
end
|
380
409
|
end
|
@@ -32,7 +32,7 @@ end
|
|
32
32
|
group :development, :test do
|
33
33
|
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
34
34
|
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
35
|
-
<%-
|
35
|
+
<%- if depends_on_system_test? -%>
|
36
36
|
# Adds support for Capybara system testing and selenium driver
|
37
37
|
gem 'capybara', '~> 2.13.0'
|
38
38
|
gem 'selenium-webdriver'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
2
|
// listed below.
|
3
3
|
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
|
5
5
|
// vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
6
|
//
|
7
7
|
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
@@ -11,9 +11,6 @@
|
|
11
11
|
// about supported directives.
|
12
12
|
//
|
13
13
|
<% unless options[:skip_javascript] -%>
|
14
|
-
<% if options[:javascript] -%>
|
15
|
-
//= require <%= options[:javascript] %>
|
16
|
-
<% end -%>
|
17
14
|
//= require rails-ujs
|
18
15
|
<% unless options[:skip_turbolinks] -%>
|
19
16
|
//= require turbolinks
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
3
|
* listed below.
|
4
4
|
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
6
6
|
* vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
7
|
*
|
8
8
|
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
@@ -19,9 +19,9 @@ chdir APP_ROOT do
|
|
19
19
|
<% unless options[:skip_yarn] %>
|
20
20
|
# Install JavaScript dependencies if using Yarn
|
21
21
|
# system('bin/yarn')
|
22
|
-
|
23
22
|
<% end %>
|
24
23
|
<% unless options.skip_active_record -%>
|
24
|
+
|
25
25
|
# puts "\n== Copying sample files =="
|
26
26
|
# unless File.exist?('config/database.yml')
|
27
27
|
# cp 'config/database.yml.sample', 'config/database.yml'
|
@@ -34,6 +34,10 @@ module <%= app_const_base %>
|
|
34
34
|
# Middleware like session, flash, cookies can be added back manually.
|
35
35
|
# Skip views, helpers and assets when generating a new resource.
|
36
36
|
config.api_only = true
|
37
|
+
<%- elsif !depends_on_system_test? -%>
|
38
|
+
|
39
|
+
# Don't generate system test files.
|
40
|
+
config.generators.system_tests = nil
|
37
41
|
<%- end -%>
|
38
42
|
end
|
39
43
|
end
|
data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_1.rb.tt
CHANGED
@@ -5,6 +5,9 @@
|
|
5
5
|
# Once upgraded flip defaults one by one to migrate to the new default.
|
6
6
|
#
|
7
7
|
# Read the Guide for Upgrading Ruby on Rails for more info on each option.
|
8
|
+
|
9
|
+
# Make `form_with` generate non-remote forms.
|
10
|
+
Rails.application.config.action_view.form_with_generates_remote_forms = false
|
8
11
|
<%- unless options[:skip_sprockets] -%>
|
9
12
|
|
10
13
|
# Unknown asset fallback will return the path passed in when the given
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>The page you were looking for doesn't exist (404)</title>
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
6
|
<style>
|
7
|
-
|
7
|
+
.rails-default-error-page {
|
8
8
|
background-color: #EFEFEF;
|
9
9
|
color: #2E2F30;
|
10
10
|
text-align: center;
|
@@ -12,13 +12,13 @@
|
|
12
12
|
margin: 0;
|
13
13
|
}
|
14
14
|
|
15
|
-
div.dialog {
|
15
|
+
.rails-default-error-page div.dialog {
|
16
16
|
width: 95%;
|
17
17
|
max-width: 33em;
|
18
18
|
margin: 4em auto 0;
|
19
19
|
}
|
20
20
|
|
21
|
-
div.dialog > div {
|
21
|
+
.rails-default-error-page div.dialog > div {
|
22
22
|
border: 1px solid #CCC;
|
23
23
|
border-right-color: #999;
|
24
24
|
border-left-color: #999;
|
@@ -31,13 +31,13 @@
|
|
31
31
|
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
32
|
}
|
33
33
|
|
34
|
-
h1 {
|
34
|
+
.rails-default-error-page h1 {
|
35
35
|
font-size: 100%;
|
36
36
|
color: #730E15;
|
37
37
|
line-height: 1.5em;
|
38
38
|
}
|
39
39
|
|
40
|
-
div.dialog > p {
|
40
|
+
.rails-default-error-page div.dialog > p {
|
41
41
|
margin: 0 0 1em;
|
42
42
|
padding: 1em;
|
43
43
|
background-color: #F7F7F7;
|
@@ -54,7 +54,7 @@
|
|
54
54
|
</style>
|
55
55
|
</head>
|
56
56
|
|
57
|
-
<body>
|
57
|
+
<body class="rails-default-error-page">
|
58
58
|
<!-- This file lives in public/404.html -->
|
59
59
|
<div class="dialog">
|
60
60
|
<div>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>The change you wanted was rejected (422)</title>
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
6
|
<style>
|
7
|
-
|
7
|
+
.rails-default-error-page {
|
8
8
|
background-color: #EFEFEF;
|
9
9
|
color: #2E2F30;
|
10
10
|
text-align: center;
|
@@ -12,13 +12,13 @@
|
|
12
12
|
margin: 0;
|
13
13
|
}
|
14
14
|
|
15
|
-
div.dialog {
|
15
|
+
.rails-default-error-page div.dialog {
|
16
16
|
width: 95%;
|
17
17
|
max-width: 33em;
|
18
18
|
margin: 4em auto 0;
|
19
19
|
}
|
20
20
|
|
21
|
-
div.dialog > div {
|
21
|
+
.rails-default-error-page div.dialog > div {
|
22
22
|
border: 1px solid #CCC;
|
23
23
|
border-right-color: #999;
|
24
24
|
border-left-color: #999;
|
@@ -31,13 +31,13 @@
|
|
31
31
|
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
32
|
}
|
33
33
|
|
34
|
-
h1 {
|
34
|
+
.rails-default-error-page h1 {
|
35
35
|
font-size: 100%;
|
36
36
|
color: #730E15;
|
37
37
|
line-height: 1.5em;
|
38
38
|
}
|
39
39
|
|
40
|
-
div.dialog > p {
|
40
|
+
.rails-default-error-page div.dialog > p {
|
41
41
|
margin: 0 0 1em;
|
42
42
|
padding: 1em;
|
43
43
|
background-color: #F7F7F7;
|
@@ -54,7 +54,7 @@
|
|
54
54
|
</style>
|
55
55
|
</head>
|
56
56
|
|
57
|
-
<body>
|
57
|
+
<body class="rails-default-error-page">
|
58
58
|
<!-- This file lives in public/422.html -->
|
59
59
|
<div class="dialog">
|
60
60
|
<div>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>We're sorry, but something went wrong (500)</title>
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
6
|
<style>
|
7
|
-
|
7
|
+
.rails-default-error-page {
|
8
8
|
background-color: #EFEFEF;
|
9
9
|
color: #2E2F30;
|
10
10
|
text-align: center;
|
@@ -12,13 +12,13 @@
|
|
12
12
|
margin: 0;
|
13
13
|
}
|
14
14
|
|
15
|
-
div.dialog {
|
15
|
+
.rails-default-error-page div.dialog {
|
16
16
|
width: 95%;
|
17
17
|
max-width: 33em;
|
18
18
|
margin: 4em auto 0;
|
19
19
|
}
|
20
20
|
|
21
|
-
div.dialog > div {
|
21
|
+
.rails-default-error-page div.dialog > div {
|
22
22
|
border: 1px solid #CCC;
|
23
23
|
border-right-color: #999;
|
24
24
|
border-left-color: #999;
|
@@ -31,13 +31,13 @@
|
|
31
31
|
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
32
|
}
|
33
33
|
|
34
|
-
h1 {
|
34
|
+
.rails-default-error-page h1 {
|
35
35
|
font-size: 100%;
|
36
36
|
color: #730E15;
|
37
37
|
line-height: 1.5em;
|
38
38
|
}
|
39
39
|
|
40
|
-
div.dialog > p {
|
40
|
+
.rails-default-error-page div.dialog > p {
|
41
41
|
margin: 0 0 1em;
|
42
42
|
padding: 1em;
|
43
43
|
background-color: #F7F7F7;
|
@@ -54,7 +54,7 @@
|
|
54
54
|
</style>
|
55
55
|
</head>
|
56
56
|
|
57
|
-
<body>
|
57
|
+
<body class="rails-default-error-page">
|
58
58
|
<!-- This file lives in public/500.html -->
|
59
59
|
<div class="dialog">
|
60
60
|
<div>
|
data/lib/rails/paths.rb
CHANGED
@@ -205,7 +205,14 @@ module Rails
|
|
205
205
|
|
206
206
|
# Returns all expanded paths but only if they exist in the filesystem.
|
207
207
|
def existent
|
208
|
-
expanded.select
|
208
|
+
expanded.select do |f|
|
209
|
+
does_exist = File.exist?(f)
|
210
|
+
|
211
|
+
if !does_exist && File.symlink?(f)
|
212
|
+
raise "File #{f.inspect} is a symlink that does not point to a valid file"
|
213
|
+
end
|
214
|
+
does_exist
|
215
|
+
end
|
209
216
|
end
|
210
217
|
|
211
218
|
def existent_directories
|
data/lib/rails/secrets.rb
CHANGED
@@ -14,12 +14,10 @@ module Rails
|
|
14
14
|
end
|
15
15
|
|
16
16
|
@cipher = "aes-128-gcm"
|
17
|
-
@read_encrypted_secrets = false
|
18
17
|
@root = File # Wonky, but ensures `join` uses the current directory.
|
19
18
|
|
20
19
|
class << self
|
21
|
-
attr_writer
|
22
|
-
attr_accessor :read_encrypted_secrets
|
20
|
+
attr_writer :root
|
23
21
|
|
24
22
|
def parse(paths, env:)
|
25
23
|
paths.each_with_object(Hash.new) do |path, all_secrets|
|
@@ -88,11 +86,7 @@ module Rails
|
|
88
86
|
|
89
87
|
def preprocess(path)
|
90
88
|
if path.end_with?(".enc")
|
91
|
-
|
92
|
-
decrypt(IO.binread(path))
|
93
|
-
else
|
94
|
-
""
|
95
|
-
end
|
89
|
+
decrypt(IO.binread(path))
|
96
90
|
else
|
97
91
|
IO.read(path)
|
98
92
|
end
|
@@ -63,7 +63,7 @@ namespace :app do
|
|
63
63
|
|
64
64
|
# desc "Adds new executables to the application bin/ directory"
|
65
65
|
task :bin do
|
66
|
-
RailsUpdate.invoke_from_app_generator :
|
66
|
+
RailsUpdate.invoke_from_app_generator :update_bin_files
|
67
67
|
end
|
68
68
|
|
69
69
|
task :upgrade_guide_info do
|
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.1.0.
|
4
|
+
version: 5.1.0.rc2
|
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: 2017-
|
11
|
+
date: 2017-04-21 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.1.0.
|
19
|
+
version: 5.1.0.rc2
|
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.1.0.
|
26
|
+
version: 5.1.0.rc2
|
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.1.0.
|
33
|
+
version: 5.1.0.rc2
|
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.1.0.
|
40
|
+
version: 5.1.0.rc2
|
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.1.0.
|
95
|
+
version: 5.1.0.rc2
|
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.1.0.
|
102
|
+
version: 5.1.0.rc2
|
103
103
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
104
104
|
email: david@loudthinking.com
|
105
105
|
executables:
|