summaryrefslogtreecommitdiff
path: root/dev-ruby/railties/railties-7.2.3.2.ebuild
blob: 6cf1bd72210490284e4745346780bd435191b193 (plain)
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

USE_RUBY="ruby32 ruby33 ruby34"

RUBY_FAKEGEM_TASK_TEST="test:isolated"
RUBY_FAKEGEM_RECIPE_DOC=""
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"

RUBY_FAKEGEM_GEMSPEC="railties.gemspec"

RUBY_FAKEGEM_BINDIR="exe"
RUBY_FAKEGEM_BINWRAP=""

inherit edo multiprocessing ruby-fakegem

DESCRIPTION="Tools for creating, working with, and running Rails applications"
HOMEPAGE="https://github.com/rails/rails"

SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
RUBY_S="rails-${PV}/${PN}"

LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~amd64"

RDEPEND=">=app-eselect/eselect-rails-0.29"

ruby_add_rdepend "
	~dev-ruby/actionpack-${PV}
	~dev-ruby/activesupport-${PV}
	>=dev-ruby/irb-1.13:0
	>=dev-ruby/rackup-1.0.0
	>=dev-ruby/rake-12.2
	>=dev-ruby/thor-1.2.2:1
	>=dev-ruby/zeitwerk-2.6:2
"

ruby_add_bdepend "
	test? (
		~dev-ruby/actionmailer-${PV}
		~dev-ruby/actiontext-${PV}
		~dev-ruby/actionview-${PV}
		~dev-ruby/activestorage-${PV}
		>=dev-ruby/bcrypt-ruby-3.1.11
		>=dev-ruby/bootsnap-1.4.4
		dev-ruby/bundler
		>=dev-ruby/capybara-3.39
		>=dev-ruby/cgi-0.3.6
		<dev-ruby/connection_pool-3:*
		<dev-ruby/dalli-5:*
		>=dev-ruby/dalli-3.0.1:*
		>=dev-ruby/image_processing-1.2:0
		>=dev-ruby/importmap-rails-1.2.3
		dev-ruby/jbuilder
		>=dev-ruby/listen-3.3:3
		dev-ruby/minitest:5
		dev-ruby/minitest-retry
		>=dev-ruby/mysql2-0.5:0.5
		>=dev-ruby/propshaft-0.1.7
		>=dev-ruby/pg-1.3:1
		>=dev-ruby/rack-cache-1.2:1.2
		>=dev-ruby/ruby-vips-2.3
		>=dev-ruby/selenium-webdriver-4.20.0
		>=dev-ruby/sprockets-rails-2.0.0
		>=dev-ruby/sqlite3-1.6.6
		dev-ruby/web-console
		dev-ruby/webrick
		>=www-servers/puma-5.0.3
	)
"

all_ruby_prepare() {
	# Replace Gemfile with something simpler for the test run
	cat <<-EOF > ../Gemfile || die
	source "https://rubygems.org"
	gemspec

	gem "rake"

	gem "minitest", "~> 5.0"
	gem "minitest-retry"

	gem "actionmailer", "${PV}"
	gem "actiontext", "${PV}"
	gem "actionview", "${PV}"
	gem "activestorage", "${PV}"
	gem "bcrypt", "~> 3.1.11", require: false
	gem "bootsnap", ">= 1.4.4", require: false
	gem "capybara", ">= 3.39"
	gem "cgi", ">= 0.3.6"
	gem "connection_pool", "< 3", require: false
	gem "dalli", ">= 3.0.1", "< 5"
	gem "image_processing", "~> 1.2"
	gem "importmap-rails", ">= 1.2.3"
	gem "jbuilder", require: false
	gem "listen", "~> 3.3", require: false
	gem "mysql2", "~> 0.5"
	gem "pg", "~> 1.3"
	gem "propshaft", ">= 0.1.7"
	gem "puma", ">= 5.0.3", require: false
	gem "rack-cache", "~> 1.2"
	gem "ruby-vips", "~> 2.3"
	gem "selenium-webdriver", ">= 4.20.0"
	gem "sprockets-rails", ">= 2.0.0", require: false
	gem "sqlite3", ">= 1.6.6"
	gem "web-console", require: false
	gem "webrick", require: false
	EOF
	rm ../Gemfile.lock || die

	# noop yarn
	sed -e 's/yarn/true/' \
		-i test/isolation/abstract_unit.rb || die
	sed -e '/test_css_option_with_cssbundling_gem/,/^  end/ s:^:#:' \
		-e '/test_css_option_with_asset_pipeline_tailwind/,/^  end/ s:^:#:' \
		-e '/test_css_option_with_asset_pipeline_sass/,/^  end/ s:^:#:' \
		-i test/generators/app_generator_test.rb || die

	# Avoid rubocop dependency
	sed -e '/"generators with apply_rubocop_autocorrect_after_generate!"/,/^      end/ s:^:#:' \
		-e '/"generators with apply_rubocop_autocorrect_after_generate! and pretend"/,/^      end/ s:^:#:' \
		-i test/application/generators_test.rb || die
	sed -e '/def test_generated_files_have_no_rubocop_warnings/,/^  end/ s:^:#:' \
		-i test/generators/shared_generator_tests.rb || die

	# selenium chrome
	sed -e '/def generate_application_system_test_case_file/,/^      end/ s:^:#:' \
		-e '/def test_failed_system_test_screenshot_should_be_taken_before_other_teardown/,/^    end/ s:^:#:' \
		-e '/def test_parallel_testing_when_schema_is_not_up_to_date/,/^    end/ s:^:#:' \
		-e '/def test_reset_sessions_on_failed_system_test_screenshot/,/^    end/ s:^:#:' \
		-e '/def test_system_tests_are_not_run_through_rake_test/,/^    end/ s:^:#:' \
		-e '/def test_system_tests_are_not_run_with_the_default_test_command/,/^    end/ s:^:#:' \
		-e '/def test_system_tests_are_run_through_rake_test_when_given_in_TEST/,/^    end/ s:^:#:' \
		-i test/application/test_runner_test.rb || die
	rm test/application/system_test_case_test.rb || die

	# Unpackaged dependency turbo-rails
	sed -e '/def test_app_update$/,/^  end/ s:^:#:' \
		-e '/def test_app_update_create_new_framework_defaults/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_change_app_name_when_app_name_is_hyphenated_name/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_change_config_target_version/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_create_rack_cors/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_action_cable_contents_when_skip_action_cable_is_given/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_active_storage_contents_when_skip_active_record_is_given/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_active_storage_contents_when_skip_active_storage_is_given/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_assets_initializer_when_asset_pipeline_is_not_used/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_assets_initializer_when_sprockets_and_propshaft_are_not_used/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_bootsnap_contents_when_skip_bootsnap_is_given/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_generate_manifest_config_when_propshaft_is_used/,/^  end/ s:^:#:' \
		-e '/def test_app_update_does_not_remove_rack_cors_if_already_present/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_propshaft/,/^  end/ s:^:#:' \
		-e '/def test_app_update_generates_public_folders/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_action_mailbox/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_action_text/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_active_job/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_brakeman/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_bundler_audit/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_rubocop/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_system_test/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_test/,/^  end/ s:^:#:' \
		-e '/def test_app_update_preserves_skip_thruster/,/^  end/ s:^:#:' \
		-e '/def test_app_update_supports_pretend/,/^  end/ s:^:#:' \
		-e '/def test_app_update_supports_skip/,/^  end/ s:^:#:' \
		-e '/def test_application_name_is_detected_if_it_exists_and_app_folder_renamed/,/^  end/ s:^:#:' \
		-e '/def test_ci_workflow_does_not_include_db_test_prepare_when_skip_active_record_is_given/,/^  end/ s:^:#:' \
		-e '/def test_hotwire/,/^  end/ s:^:#:' \
		-i test/generators/app_generator_test.rb || die

	# Avoid breaking network sandbox
	rm test/application/active_job_adapter_test.rb || die
	sed -e '/def test_ensure_that_migration_tasks_work_with_mountable_option/,/^  end/ s:^:#:' \
		-e '/def test_plugin_passes_generated_test/,/^  end/ s:^:#:' \
		-i test/generators/plugin_generator_test.rb || die

	# Needs running db
	sed -e '/test "db:create works when schema cache exists and database does not exist" do/,/^      end/ s:^:#:' \
		-e '/test "db:drop failure because bad permissions"/,/^        end/ s:^:#:' \
		-e '/test "db:prepare creates test database if it does not exist" do/,/^      end/ s:^:#:' \
		-e '/test "db:prepare loads schema when database exists but is empty"/,/^      end/ s:^:#:' \
		-e '/test "db:schema:cache:dump dumps virtual columns" do/,/^      end/ s:^:#:' \
		-i test/application/rake/dbs_test.rb || die
	sed -e '/"default schema generation after migration"/,/^      end/ s:^:#:' \
		-e '/"migrate with specified VERSION in different formats"/,/^      end/ s:^:#:' \
		-e '/"migration status after rollback and forward"/,/^      end/ s:^:#:' \
		-e '/"migration status after rollback and redo without timestamps"/,/^      end/ s:^:#:' \
		-e '/"migration status after rollback and redo"/,/^      end/ s:^:#:' \
		-e '/"migration status migrated file is deleted"/,/^      end/ s:^:#:' \
		-e '/"migration status without timestamps"/,/^      end/ s:^:#:' \
		-e '/"migration status"/,/^      end/ s:^:#:' \
		-e '/"migration with 0 version"/,/^      end/ s:^:#:' \
		-e '/"migration with empty version"/,/^      end/ s:^:#:' \
		-e '/"migrations with execute run when connections are established from a loaded model"/,/^      end/ s:^:#:' \
		-e '/"model and migration generator with change syntax"/,/^      end/ s:^:#:' \
		-e '/"raise error on any move when current migration does not exist"/,/^      end/ s:^:#:' \
		-e '/"raise error on any move when target migration does not exist"/,/^      end/ s:^:#:' \
		-e '/"running migrations with given scope"/,/^      end/ s:^:#:' \
		-e '/"running migrations with not timestamp head migration files"/,/^      end/ s:^:#:' \
		-e '/"version outputs current version"/,/^      end/ s:^:#:' \
		-i test/application/rake/migrations_test.rb || die
	sed -e '/test "db:migrate respects timestamp ordering across databases" do/,/^      end/ s:^:#:' \
		-e '/test "db:prepare setup the database even if schema does not exist" do/,/^      end/ s:^:#:' \
		-e '/test "db:prepare setups missing database without clearing existing one" do/,/^      end/ s:^:#:' \
		-i test/application/rake/multi_dbs_test.rb || die
	sed -e '/test "task is protected when previous migration was production" do/,/^    end/ s:^:#:' \
		-i test/application/rake_test.rb || die
	sed -e '/"database-dependent attribute types are resolved when parallel tests are run in eager load context"/,/^    end/ s:^:#:' \
		-i test/application/test_test.rb || die
	sed -e '/test_devcontainer_mariadb_mysql/,/^  end/ s:^:#:' \
		-e '/test_devcontainer_mariadb/,/^  end/ s:^:#:' \
		-e '/test_devcontainer_mysql/,/^  end/ s:^:#:' \
		-i test/generators/app_generator_test.rb || die

	# Unpackaged dependency solid_cable and solid_queue
	sed -e '/test "generates devcontainer for default app with solid gems" do/,/^  end/ s:^:#:' \
		-i test/commands/devcontainer_test.rb || die
	sed -e '/def test_app_update_does_not_generate_public_files/,/^  end/ s:^:#:' \
		-i test/generators/api_app_generator_test.rb || die

	# Unpackaged dependency kamal
	sed -e '/test_kamal_deploy_yml_excludes_asset_path_for_api_app/,/^  end/ s:^:#:' \
		-i test/generators/api_app_generator_test.rb || die

	# Fails due to using system gems
	sed -e '/"rails routes with expanded option"/,/^  end/ s:^:#:' \
		-i test/commands/routes_test.rb || die

	# Triggers vendored thor in bundler weirdness
	sed -e '/test_bin_setup$/,/^    end/ s:^:#:' \
		-e '/test_bin_setup_output/,/^    end/ s:^:#:' \
		-i test/application/bin_setup_test.rb || die
	sed -e '/"load_path is populated before eager loaded models"/,/^    end/ s:^:#:' \
		-e '/"locale files should be added to the load path"/,/^    end/ s:^:#:' \
		-i test/application/initializers/i18n_test.rb || die
	sed -e '/"AC load hooks can be used with metal"/,/^  end/ s:^:#:' \
		-e '/"constants in app are autoloaded"/,/^  end/ s:^:#:' \
		-e '/"frameworks aren.t loaded during initialization"/,/^  end/ s:^:#:' \
		-e '/"models without table do not panic on scope definitions when loaded"/,/^  end/ s:^:#:' \
		-e '/test_initialize_can_be_called_at_any_time/,/^  end/ s:^:#:' \
		-i test/application/loading_test.rb || die
	sed -e '/test_console_command_work_inside_engine/,/^    end/ s:^:#:' \
		-e '/test_dbconsole_command_work_inside_engine/,/^    end/ s:^:#:' \
		-e '/test_help_command_work_inside_engine/,/^  end/ s:^:#:' \
		-e '/test_runner_command_work_inside_engine/,/^  end/ s:^:#:' \
		-e '/test_server_command_broadcast_logs/,/^    end/ s:^:#:' \
		-e '/test_server_command_work_inside_engine/,/^    end/ s:^:#:' \
		-i test/engine/commands_test.rb || die
	sed -e '/"automatically synchronize test schema"/,/^  end/ s:^:#:' \
		-i test/engine/test_test.rb || die
	sed -e '/test_executed_only_once/,/^  end/ s:^:#:' \
		-e '/test_fail_fast/,/^  end/ s:^:#:' \
		-e '/test_mix_files_and_line_filters/,/^  end/ s:^:#:' \
		-e '/test_multiple_line_filters/,/^  end/ s:^:#:' \
		-e '/test_only_inline_failure_output/,/^  end/ s:^:#:' \
		-e '/test_output_inline_by_default/,/^  end/ s:^:#:' \
		-e '/test_raise_error_when_specified_file_does_not_exist/,/^  end/ s:^:#:' \
		-e '/test_run_default/,/^  end/ s:^:#:' \
		-e '/test_run_multiple_files/,/^  end/ s:^:#:' \
		-e '/test_run_single_file/,/^  end/ s:^:#:' \
		-e '/test_warnings_option/,/^  end/ s:^:#:' \
		-i test/generators/plugin_test_runner_test.rb || die
	sed -e '/test_controller_tests_pass_by_default_inside_full_engine/,/^  end/ s:^:#:' \
		-e '/test_controller_tests_pass_by_default_inside_mountable_engine/,/^  end/ s:^:#:' \
		-i test/generators/scaffold_controller_generator_test.rb || die
	sed -e '/test_scaffold_on_invoke_inside_mountable_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_on_revoke_inside_mountable_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_tests_pass_by_default_inside_api_full_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_tests_pass_by_default_inside_api_mountable_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_tests_pass_by_default_inside_full_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_tests_pass_by_default_inside_mountable_engine/,/^  end/ s:^:#:' \
		-e '/test_scaffold_tests_pass_by_default_inside_namespaced_mountable_engine/,/^  end/ s:^:#:' \
		-i test/generators/scaffold_generator_test.rb || die
	sed -e '/test_run_default/,/^  end/ s:^:#:' \
		-e '/test_rerun_snippet_is_relative_path/,/^  end/ s:^:#:' \
		-i test/generators/test_runner_in_engine_test.rb || die
	sed -e '/"active_storage:install task works within engine"/,/^    end/ s:^:#:' \
		-e '/"active_storage:update task works within engine"/,/^    end/ s:^:#:' \
		-e '/"adds its fixtures path to fixture_paths"/,/^    end/ s:^:#:' \
		-e '/"adds its mailer previews to mailer preview paths"/,/^    end/ s:^:#:' \
		-e '/"adds its views to view paths"/,/^    end/ s:^:#:' \
		-e '/"can draw routes in app routes from engines"/,/^    end/ s:^:#:' \
		-e '/"copying migrations to specific database"/,/^    end/ s:^:#:' \
		-e '/"copying migrations"/,/^    end/ s:^:#:' \
		-e '/"don.t reverse default railties order"/,/^    end/ s:^:#:' \
		-e '/"isolated engine should avoid namespace in names if that.s possible"/,/^    end/ s:^:#:' \
		-e '/"loading seed data is wrapped by the executor"/,/^    end/ s:^:#:' \
		-e '/"locales can be nested"/,/^    end/ s:^:#:' \
		-e '/"mountable engine should copy migrations within engine_path"/,/^    end/ s:^:#:' \
		-e '/"puts its lib directory on load path"/,/^    end/ s:^:#:' \
		-e '/"rake environment can be called in the engine"/,/^    end/ s:^:#:' \
		-e '/"respects the order of railties when installing migrations"/,/^    end/ s:^:#:' \
		-e '/"skips nonexistent seed data"/,/^    end/ s:^:#:' \
		-e '/"take ActiveRecord table_name_prefix into consideration when defining table_name_prefix"/,/^    end/ s:^:#:' \
		-e '/"using namespace more than once on one module should not overwrite railtie_namespace method"/,/^    end/ s:^:#:' \
		-e '/"when the bootstrap hook runs, autoload paths are set"/,/^    end/ s:^:#:' \
		-i test/railties/engine_test.rb || die
	sed -e '/test_controllers_are_correctly_namespaced_when_engine_is_mountable/,/^    end/ s:^:#:' \
		-e '/test_controllers_are_not_namespaced_when_engine_is_not_mountable/,/^    end/ s:^:#:' \
		-e '/test_helpers_are_correctly_namespaced_when_engine_is_mountable/,/^    end/ s:^:#:' \
		-e '/test_helpers_are_not_namespaced_when_engine_is_not_mountable/,/^    end/ s:^:#:' \
		-e '/test_models_are_correctly_namespaced_when_engine_is_mountable/,/^    end/ s:^:#:' \
		-e '/test_models_are_not_namespaced_when_engine_is_not_mountable/,/^    end/ s:^:#:' \
		-e '/test_table_name_prefix_is_correctly_namespaced_when_engine_is_mountable/,/^    end/ s:^:#:' \
		-i test/railties/generators_test.rb || die

	# Hangs
	sed -e '/test "routes are loaded before inserting test routes" do/,/^    end/ s:^:#:' \
		-i test/application/integration_test_case_test.rb || die

	# FIXME:
	sed -e '/"db:prepare runs seeds once"/,/^      end/ s:^:#:' \
		-i test/application/rake/multi_dbs_test.rb || die
	sed -e '/test_not_protected_when_previous_migration_was_not_production/,/^    end/ s:^:#:' \
		-i test/application/rake_test.rb || die
	sed -e '/test_can_exclude_files_from_being_tested_via_rake_task_by_setting_DEFAULT_TEST_EXCLUDE_env_var/,/^    end/ s:^:#:' \
		-e '/test_fail_fast$/,/^    end/ s:^:#:' \
		-e '/test_fail_fast_in_parallel_with_processes/,/^    end/ s:^:#:' \
		-e '/test_parallelization_is_disabled_when_number_of_tests_is_below_threshold/,/^    end/ s:^:#:' \
		-e '/test_pass_TEST_env_on_rake_test/,/^    end/ s:^:#:' \
		-e '/test_pass_rake_options/,/^    end/ s:^:#:' \
		-e '/test_rails_db_create_all_restores_db_connection$/,/^    end/ s:^:#:' \
		-e '/test_rails_db_create_all_restores_db_connection_after_drop/,/^    end/ s:^:#:' \
		-e '/test_rake_db_and_test_tasks_parses_args_correctly/,/^    end/ s:^:#:' \
		-e '/test_rake_passes_TESTOPTS_to_minitest/,/^    end/ s:^:#:' \
		-e '/test_rake_passes_multiple_TESTOPTS_to_minitest/,/^    end/ s:^:#:' \
		-e '/test_rake_runs_multiple_test_tasks/,/^    end/ s:^:#:' \
		-e '/test_rake_runs_tests_before_other_tasks_when_specified/,/^    end/ s:^:#:' \
		-e '/test_reset_sessions_before_rollback_on_system_tests/,/^    end/ s:^:#:' \
		-i test/application/test_runner_test.rb || die
	sed -e '/"enable full backtraces on test failures"/,/^    end/ s:^:#:' \
		-i test/application/test_test.rb || die
	sed -e '/test "when passing --trace it invokes default" do/,/^  end/ s:^:#:'\
		-i test/command/help_integration_test.rb || die
	sed -e '/test_app_update_silence_deprecate_message/,/^  end/ s:^:#:' \
		-i test/generators/app_generator_test.rb || die
	#sed -e '/"does not replace backtrace filter when using --backtrace option"/,/^  end/ s:^:#:' \
	#	-i test/minitest/rails_plugin_test.rb || die
	rm test/minitest/rails_plugin_test.rb || die
}

each_ruby_test() {
	# https://github.com/rails/rails/blob/main/guides/source/testing.md#parallel-testing
	local -x PARALLEL_WORKERS="$(get_makeopts_jobs)"

	local -x BUNDLE_GEMFILE="../Gemfile"
	local -x MT_NO_PLUGINS=true
	# Do not include --disable=did_you_mean, its expected by some tests
	edo ${RUBY} -S bundle exec ${RUBY} -S rake ${RUBY_FAKEGEM_TASK_TEST} || die
}

all_ruby_install() {
	all_fakegem_install

	ruby_fakegem_binwrapper rails rails-${PV}
}

pkg_postinst() {
	elog "To select between slots of rails, use:"
	elog "\teselect rails"

	eselect rails update
}

pkg_postrm() {
	eselect rails update
}