Skip to content

Commit 686bf84

Browse files
committed
Remove support for < 5.2
1 parent 77e073a commit 686bf84

File tree

18 files changed

+139
-278
lines changed

18 files changed

+139
-278
lines changed

Gemfile-rails-dependencies

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ when /master/
1717
gem 'selenium-webdriver', require: false
1818
when /stable$/
1919
gem_list = %w[rails railties actionmailer actionpack activerecord activesupport activejob actionview]
20-
gem 'puma', "3.12.1" if version > '5-0-stable'
20+
gem 'puma', "3.12.1"
2121
gem 'activerecord-jdbcsqlite3-adapter', git: 'https://github.com/jruby/activerecord-jdbc-adapter', platforms: [:jruby]
2222

2323
gem_list.each do |rails_gem|
@@ -31,7 +31,7 @@ when nil, false, ""
3131
else
3232
gem "rails", version
3333
gem "sprockets", '~> 3.0' if RUBY_VERSION < '2.5'
34-
gem "puma" if version >= '5-1-stable'
34+
gem "puma"
3535
gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
36-
gem 'selenium-webdriver', require: false if version >= '5'
36+
gem 'selenium-webdriver', require: false
3737
end

Rakefile

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ require 'cucumber/rake/task'
1313

1414
def rails_template_command
1515
require "rails/version"
16-
if Rails.version.to_f >= 5.0
17-
"app:template"
18-
else
19-
"rails:template"
20-
end
16+
"app:template"
2117
end
2218

2319
desc "Run all examples"
@@ -36,14 +32,6 @@ Cucumber::Rake::Task.new(:cucumber) do |t|
3632
end
3733
tags = []
3834

39-
if version.to_f >= 5.1
40-
tags << "~@rails_pre_5.1"
41-
end
42-
43-
if version.to_f == 5.0
44-
tags << "~@system_test"
45-
end
46-
4735
if version.to_f >= 6.0
4836
tags << "~@rails_pre_6"
4937
end

example_app_generator/generate_app.rb

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,7 @@
2424
gsub_file "Gemfile", /.*puma.*/, ''
2525
gsub_file "Gemfile", /.*bootsnap.*/, ''
2626

27-
# We soft-support Rails 4.2. `rails-controller-testing` only supports Rails 5+.
28-
# This conditional is to facilitate local testing against Rails 4.2.
29-
if Rails::VERSION::STRING >= '5'
30-
append_to_file 'Gemfile', "gem 'rails-controller-testing'\n"
31-
end
27+
append_to_file 'Gemfile', "gem 'rails-controller-testing'\n"
3228

3329
if Rails::VERSION::STRING >= '6'
3430
gsub_file "Gemfile", /.*rails-controller-testing.*/, "gem 'rails-controller-testing', git: 'https://github.com/rails/rails-controller-testing'"
@@ -47,14 +43,12 @@
4743
gsub_file "Gemfile", /.*gem..sqlite3.*/, "gem 'sqlite3', '~> 1.3.6'"
4844
end
4945

50-
if Rails::VERSION::STRING >= "5.1.0"
51-
# webdrivers 4 up until 4.3.0 don't specify `required_ruby_version`, but contain
52-
# Ruby 2.2-incompatible syntax (safe navigation).
53-
# That basically means we use pre-4.0 for Ruby 2.2, and 4.3+ for newer Rubies.
54-
gsub_file "Gemfile", /.*chromedriver-helper.*/, "gem 'webdrivers', '!= 4.0.0', '!= 4.0.1', '!= 4.1.0', '!= 4.1.1', '!= 4.1.2', '!= 4.1.3', '!= 4.2.0'"
55-
end
46+
# webdrivers 4 up until 4.3.0 don't specify `required_ruby_version`, but contain
47+
# Ruby 2.2-incompatible syntax (safe navigation).
48+
# That basically means we use pre-4.0 for Ruby 2.2, and 4.3+ for newer Rubies.
49+
gsub_file "Gemfile", /.*chromedriver-helper.*/, "gem 'webdrivers', '!= 4.0.0', '!= 4.0.1', '!= 4.1.0', '!= 4.1.1', '!= 4.1.2', '!= 4.1.3', '!= 4.2.0'"
5650

57-
if Rails::VERSION::STRING >= '5.2.0' && Rails::VERSION::STRING < '6'
51+
if Rails::VERSION::STRING < '6'
5852
copy_file sqlite_initializer, 'config/initializers/sqlite3_fix.rb'
5953
end
6054

features/feature_specs/feature_spec.feature

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -17,35 +17,6 @@ Feature: Feature spec
1717
[customer](http://c2.com/cgi/wiki?CustomerTest) and [acceptance](http://c2.com/cgi/wiki?AcceptanceTest) tests. When capybara is required it sets
1818
`:type => :feature` automatically for you.
1919

20-
@rails_pre_5.1
21-
Scenario: Feature specs are skipped without Capybara
22-
Given a file named "spec/features/widget_management_spec.rb" with:
23-
"""ruby
24-
require "rails_helper"
25-
26-
RSpec.feature "Widget management", :type => :feature do
27-
scenario "User creates a new widget" do
28-
visit "/widgets/new"
29-
30-
fill_in "Name", :with => "My Widget"
31-
click_button "Create Widget"
32-
33-
expect(page).to have_text("Widget was successfully created.")
34-
end
35-
end
36-
"""
37-
When I run `rspec spec/features/widget_management_spec.rb`
38-
Then the exit status should be 0
39-
And the output should contain "1 example, 0 failures, 1 pending"
40-
And the output should contain:
41-
"""
42-
Pending: (Failures listed here are expected and do not affect your suite's status)
43-
44-
1) Widget management User creates a new widget
45-
# Feature specs require the Capybara (https://github.com/teamcapybara/capybara) gem, version 2.13.0 or later.
46-
# ./spec/features/widget_management_spec.rb:4
47-
"""
48-
4920
@capybara
5021
Scenario: specify creating a Widget by driving the application with capybara
5122
Given a file named "spec/features/widget_management_spec.rb" with:

lib/generators/rspec/mailer/templates/mailer_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
require "rails_helper"
22

33
<% module_namespacing do -%>
4-
RSpec.describe <%= Rails.version.to_f >= 5.0 ? class_name.sub(/(Mailer)?$/, 'Mailer') : class_name %>, <%= type_metatag(:mailer) %> do
4+
RSpec.describe <%= class_name.sub(/(Mailer)?$/, 'Mailer') %>, <%= type_metatag(:mailer) %> do
55
<% for action in actions -%>
66
describe "<%= action %>" do
7-
let(:mail) { <%= Rails.version.to_f >= 5.0 ? class_name.sub(/(Mailer)?$/, 'Mailer') : class_name %>.<%= action %> }
7+
let(:mail) { <%= class_name.sub(/(Mailer)?$/, 'Mailer') %>.<%= action %> }
88
99
it "renders the headers" do
1010
expect(mail.subject).to eq(<%= action.to_s.humanize.inspect %>)

lib/generators/rspec/mailer/templates/preview.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class <%= class_name %>Preview < ActionMailer::Preview
55

66
# Preview this email at http://localhost:3000/rails/mailers/<%= file_path %>/<%= action %>
77
def <%= action %>
8-
<%= Rails.version.to_f >= 5.0 ? class_name.sub(/(Mailer)?$/, 'Mailer') : class_name %>.<%= action %>
8+
<%= class_name.sub(/(Mailer)?$/, 'Mailer') %>.<%= action %>
99
end
1010
<% end -%>
1111

lib/generators/rspec/scaffold/templates/controller_spec.rb

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@
4646
describe "GET #index" do
4747
it "returns a success response" do
4848
<%= class_name %>.create! valid_attributes
49-
<% if Rails::VERSION::STRING < '5.0' -%>
50-
get :index, {}, valid_session
51-
<% else -%>
5249
get :index, params: {}, session: valid_session
53-
<% end -%>
5450
expect(response).to be_successful
5551
end
5652
end
@@ -59,34 +55,22 @@
5955
describe "GET #show" do
6056
it "returns a success response" do
6157
<%= file_name %> = <%= class_name %>.create! valid_attributes
62-
<% if Rails::VERSION::STRING < '5.0' -%>
63-
get :show, {id: <%= file_name %>.to_param}, valid_session
64-
<% else -%>
6558
get :show, params: {id: <%= file_name %>.to_param}, session: valid_session
66-
<% end -%>
6759
expect(response).to be_successful
6860
end
6961
end
7062
7163
describe "GET #new" do
7264
it "returns a success response" do
73-
<% if Rails::VERSION::STRING < '5.0' -%>
74-
get :new, {}, valid_session
75-
<% else -%>
7665
get :new, params: {}, session: valid_session
77-
<% end -%>
7866
expect(response).to be_successful
7967
end
8068
end
8169
8270
describe "GET #edit" do
8371
it "returns a success response" do
8472
<%= file_name %> = <%= class_name %>.create! valid_attributes
85-
<% if Rails::VERSION::STRING < '5.0' -%>
86-
get :edit, {id: <%= file_name %>.to_param}, valid_session
87-
<% else -%>
8873
get :edit, params: {id: <%= file_name %>.to_param}, session: valid_session
89-
<% end -%>
9074
expect(response).to be_successful
9175
end
9276
end
@@ -95,31 +79,19 @@
9579
context "with valid params" do
9680
it "creates a new <%= class_name %>" do
9781
expect {
98-
<% if Rails::VERSION::STRING < '5.0' -%>
99-
post :create, {<%= ns_file_name %>: valid_attributes}, valid_session
100-
<% else -%>
10182
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
102-
<% end -%>
10383
}.to change(<%= class_name %>, :count).by(1)
10484
end
10585
10686
it "redirects to the created <%= ns_file_name %>" do
107-
<% if Rails::VERSION::STRING < '5.0' -%>
108-
post :create, {<%= ns_file_name %>: valid_attributes}, valid_session
109-
<% else -%>
11087
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
111-
<% end -%>
11288
expect(response).to redirect_to(<%= class_name %>.last)
11389
end
11490
end
11591
11692
context "with invalid params" do
11793
it "returns a success response (i.e. to display the 'new' template)" do
118-
<% if Rails::VERSION::STRING < '5.0' -%>
119-
post :create, {<%= ns_file_name %>: invalid_attributes}, valid_session
120-
<% else -%>
12194
post :create, params: {<%= ns_file_name %>: invalid_attributes}, session: valid_session
122-
<% end -%>
12395
expect(response).to be_successful
12496
end
12597
end
@@ -133,34 +105,22 @@
133105
134106
it "updates the requested <%= ns_file_name %>" do
135107
<%= file_name %> = <%= class_name %>.create! valid_attributes
136-
<% if Rails::VERSION::STRING < '5.0' -%>
137-
put :update, {id: <%= file_name %>.to_param, <%= ns_file_name %>: new_attributes}, valid_session
138-
<% else -%>
139108
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: new_attributes}, session: valid_session
140-
<% end -%>
141109
<%= file_name %>.reload
142110
skip("Add assertions for updated state")
143111
end
144112
145113
it "redirects to the <%= ns_file_name %>" do
146114
<%= file_name %> = <%= class_name %>.create! valid_attributes
147-
<% if Rails::VERSION::STRING < '5.0' -%>
148-
put :update, {id: <%= file_name %>.to_param, <%= ns_file_name %>: valid_attributes}, valid_session
149-
<% else -%>
150115
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: valid_attributes}, session: valid_session
151-
<% end -%>
152116
expect(response).to redirect_to(<%= file_name %>)
153117
end
154118
end
155119
156120
context "with invalid params" do
157121
it "returns a success response (i.e. to display the 'edit' template)" do
158122
<%= file_name %> = <%= class_name %>.create! valid_attributes
159-
<% if Rails::VERSION::STRING < '5.0' -%>
160-
put :update, {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, valid_session
161-
<% else -%>
162123
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, session: valid_session
163-
<% end -%>
164124
expect(response).to be_successful
165125
end
166126
end
@@ -170,21 +130,13 @@
170130
it "destroys the requested <%= ns_file_name %>" do
171131
<%= file_name %> = <%= class_name %>.create! valid_attributes
172132
expect {
173-
<% if Rails::VERSION::STRING < '5.0' -%>
174-
delete :destroy, {id: <%= file_name %>.to_param}, valid_session
175-
<% else -%>
176133
delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session
177-
<% end -%>
178134
}.to change(<%= class_name %>, :count).by(-1)
179135
end
180136
181137
it "redirects to the <%= table_name %> list" do
182138
<%= file_name %> = <%= class_name %>.create! valid_attributes
183-
<% if Rails::VERSION::STRING < '5.0' -%>
184-
delete :destroy, {id: <%= file_name %>.to_param}, valid_session
185-
<% else -%>
186139
delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session
187-
<% end -%>
188140
expect(response).to redirect_to(<%= index_helper %>_url)
189141
end
190142
end

lib/generators/rspec/scaffold/templates/edit_spec.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@
1616
assert_select "form[action=?][method=?]", <%= ns_file_name %>_path(@<%= ns_file_name %>), "post" do
1717
<% for attribute in output_attributes -%>
1818
<%- name = attribute.respond_to?(:column_name) ? attribute.column_name : attribute.name %>
19-
<% if Rails.version.to_f >= 5.1 -%>
2019
assert_select "<%= attribute.input_type -%>[name=?]", "<%= ns_file_name %>[<%= name %>]"
21-
<% else -%>
22-
assert_select "<%= attribute.input_type -%>#<%= ns_file_name %>_<%= name %>[name=?]", "<%= ns_file_name %>[<%= name %>]"
23-
<% end -%>
2420
<% end -%>
2521
end
2622
end

lib/generators/rspec/scaffold/templates/new_spec.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
assert_select "form[action=?][method=?]", <%= index_helper %>_path, "post" do
1616
<% for attribute in output_attributes -%>
1717
<%- name = attribute.respond_to?(:column_name) ? attribute.column_name : attribute.name %>
18-
<% if Rails.version.to_f >= 5.1 -%>
1918
assert_select "<%= attribute.input_type -%>[name=?]", "<%= ns_file_name %>[<%= name %>]"
20-
<% else -%>
21-
assert_select "<%= attribute.input_type -%>#<%= ns_file_name %>_<%= name %>[name=?]", "<%= ns_file_name %>[<%= name %>]"
22-
<% end -%>
2319
<% end -%>
2420
end
2521
end

lib/generators/rspec/system/system_generator.rb

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
require 'generators/rspec'
22

3-
if ::Rails::VERSION::STRING >= '5.1'
4-
module Rspec
5-
module Generators
6-
# @private
7-
class SystemGenerator < Base
8-
class_option :system_specs, type: :boolean, default: true, desc: "Generate system specs"
3+
module Rspec
4+
module Generators
5+
# @private
6+
class SystemGenerator < Base
7+
class_option :system_specs, type: :boolean, default: true, desc: "Generate system specs"
98

10-
def generate_system_spec
11-
return unless options[:system_specs]
9+
def generate_system_spec
10+
return unless options[:system_specs]
1211

13-
template template_name, File.join('spec/system', class_path, filename)
14-
end
12+
template template_name, File.join('spec/system', class_path, filename)
13+
end
1514

16-
def template_name
17-
'system_spec.rb'
18-
end
15+
def template_name
16+
'system_spec.rb'
17+
end
1918

20-
def filename
21-
"#{table_name}_spec.rb"
22-
end
19+
def filename
20+
"#{table_name}_spec.rb"
2321
end
2422
end
2523
end

lib/rspec-rails.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@ module Rails
77
# Railtie to hook into Rails.
88
class Railtie < ::Rails::Railtie
99
# As of Rails 5.1.0 you can register directories to work with `rake notes`
10-
if ::Rails::VERSION::STRING >= '5.1'
11-
require 'rails/source_annotation_extractor'
12-
if ::Rails::VERSION::STRING >= '6.0'
13-
::Rails::SourceAnnotationExtractor::Annotation.register_directories("spec")
14-
else
15-
SourceAnnotationExtractor::Annotation.register_directories("spec")
16-
end
10+
require 'rails/source_annotation_extractor'
11+
if ::Rails::VERSION::STRING >= '6.0'
12+
::Rails::SourceAnnotationExtractor::Annotation.register_directories("spec")
13+
else
14+
SourceAnnotationExtractor::Annotation.register_directories("spec")
1715
end
1816
generators = config.app_generators
1917
generators.integration_tool :rspec

lib/rspec/rails/configuration.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,8 @@ def self.initialize_configuration(config) # rubocop:disable Metrics/MethodLength
8080
# `RSpec::Rails::FixtureSupport` directly instead
8181
config.include RSpec::Rails::FixtureSupport
8282

83-
if ::Rails::VERSION::STRING > '5'
84-
config.add_setting :file_fixture_path, default: 'spec/fixtures/files'
85-
config.include RSpec::Rails::FileFixtureSupport
86-
end
83+
config.add_setting :file_fixture_path, default: 'spec/fixtures/files'
84+
config.include RSpec::Rails::FileFixtureSupport
8785

8886
# Add support for fixture_path on fixture_file_upload
8987
config.include RSpec::Rails::FixtureFileUploadSupport

lib/rspec/rails/example/request_example_group.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ module RequestExampleGroup
1010
include RSpec::Rails::Matchers::RedirectTo
1111
include RSpec::Rails::Matchers::RenderTemplate
1212
include ActionController::TemplateAssertions
13-
14-
if ActionPack::VERSION::MAJOR >= 5
15-
include ActionDispatch::IntegrationTest::Behavior
16-
end
13+
include ActionDispatch::IntegrationTest::Behavior
1714

1815
# Delegates to `Rails.application`.
1916
def app

0 commit comments

Comments
 (0)