Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Support for [email protected] #698

Merged
merged 1 commit into from
Mar 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@ jobs:
strategy:
fail-fast: false
matrix:
rails: [ "6.1", "7.0", "7.1", "7.2" ]
ruby: [ "2.7", "3.0", "3.1", "3.2", "3.3" ]
rails: [ "7.1", "7.2", "8.0" ]
ruby: [ "3.1", "3.2", "3.3", "3.4" ]
allow-fail: [ false ]
include:
- { ruby: "2.6", rails: "6.1" }
- { ruby: "3.3", rails: "main", allow-fail: true }
- { ruby: "3.2", rails: "main", allow-fail: true }
- { ruby: "head", rails: "main", allow-fail: true }
exclude:
- { ruby: "2.7", rails: "7.2" }
- { ruby: "3.0", rails: "7.2" }
- { ruby: "3.1", rails: "8.0" }

env:
FERRUM_PROCESS_TIMEOUT: 25
Expand All @@ -37,7 +35,6 @@ jobs:

- name: Run Bug Template Tests
run: ruby bug_report_template.rb || ruby bug_report_template.rb
continue-on-error: ${{ startsWith(matrix.ruby, '2') || false }}

- name: Run tests
id: test
Expand Down
16 changes: 3 additions & 13 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,11 @@ gem "sprockets-rails"

gem 'rake'
gem 'byebug'

if RUBY_VERSION < "3"
gem "rack", "< 3"
gem "puma", "< 6"
else
gem "rack"
gem "puma"
end
gem 'puma'
gem 'rack'

group :development, :test do
if rails_version == "6.1"
gem "importmap-rails", "0.6.1"
else
gem "importmap-rails"
end
gem 'importmap-rails'
end

group :test do
Expand Down
2 changes: 0 additions & 2 deletions app/channels/turbo/streams/broadcasts.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ def broadcast_refresh_to(*streamables, **opts)
end

def broadcast_action_to(*streamables, action:, target: nil, targets: nil, attributes: {}, **rendering)
attributes.deep_symbolize_keys! if RUBY_VERSION < "3"

broadcast_stream_to(*streamables, content: turbo_stream_action_tag(
action, target: target, targets: targets, template: render_broadcast_action(rendering), **attributes)
)
Expand Down
9 changes: 2 additions & 7 deletions app/helpers/turbo/streams/action_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,7 @@ module Turbo::Streams::ActionHelper
# message = Message.find(1)
# turbo_stream_action_tag "remove", target: [message, :special]
# # => <turbo-stream action="remove" target="special_message_1"></turbo-stream>
def turbo_stream_action_tag(action, attributes = {})
attributes.deep_symbolize_keys! if RUBY_VERSION < "3"

target = attributes.delete(:target)
targets = attributes.delete(:targets)
template = attributes.delete(:template)
def turbo_stream_action_tag(action, target: nil, targets: nil, template: nil, **attributes)
template = action.to_sym.in?(%i[ remove refresh ]) ? "" : tag.template(template.to_s.html_safe)

if target = convert_to_turbo_stream_dom_id(target)
Expand All @@ -44,7 +39,7 @@ def turbo_stream_action_tag(action, attributes = {})
# turbo_stream_refresh_tag
# # => <turbo-stream action="refresh"></turbo-stream>
def turbo_stream_refresh_tag(request_id: Turbo.current_request_id, **attributes)
turbo_stream_action_tag(:refresh, attributes.with_defaults({ "request-id": request_id }.compact))
turbo_stream_action_tag(:refresh, "request-id": request_id.presence, **attributes)
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/models/concerns/turbo/broadcastable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ def broadcast_target_default
self.class.broadcast_target_default
end

def extract_options_and_add_target(rendering, target: broadcast_target_default)
def extract_options_and_add_target(rendering = {}, target: broadcast_target_default)
broadcast_rendering_with_defaults(rendering).tap do |options|
options[:target] = target if !options.key?(:target) && !options.key?(:targets)
end
Expand Down
4 changes: 2 additions & 2 deletions app/models/turbo/streams/tag_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ def prepend_all(targets, content = nil, **rendering, &block)
#
# turbo_stream.refresh request_id: "abc123"
# # => <turbo-stream action="refresh" request-id="abc123"></turbo-stream>
def refresh(**options)
turbo_stream_refresh_tag(**options)
def refresh(...)
turbo_stream_refresh_tag(...)
end

# Send an action of the type <tt>name</tt> to <tt>target</tt>. Options described in the concrete methods.
Expand Down
2 changes: 1 addition & 1 deletion bug_report_template.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
gem "rails"
gem "propshaft"
gem "puma"
gem "sqlite3", "~> 1.4"
gem "sqlite3"
gem "turbo-rails"

gem "capybara"
Expand Down
2 changes: 1 addition & 1 deletion lib/turbo/engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ class TurboStreamEncoder < IdentityEncoder
ActiveSupport.on_load(:action_dispatch_system_test_case) do
app.config.turbo.test_connect_after_actions.map do |method|
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def #{method}(*args, &block) # def visit(*args, &block)
def #{method}(...) # def visit(...)
super.tap { connect_turbo_cable_stream_sources } # super.tap { connect_turbo_cable_stream_sources }
end # end
RUBY
Expand Down
8 changes: 4 additions & 4 deletions lib/turbo/system_test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ def connect_turbo_cable_stream_sources(**options, &block)
#
# In addition to the filters listed above, accepts any valid Capybara global
# filter option.
def assert_turbo_cable_stream_source(*args, &block)
assert_selector(:turbo_cable_stream_source, *args, &block)
def assert_turbo_cable_stream_source(...)
assert_selector(:turbo_cable_stream_source, ...)
end

# Asserts that a `<turbo-cable-stream-source>` element is absent from the
Expand All @@ -75,8 +75,8 @@ def assert_turbo_cable_stream_source(*args, &block)
#
# In addition to the filters listed above, accepts any valid Capybara global
# filter option.
def assert_no_turbo_cable_stream_source(*args, &block)
assert_no_selector(:turbo_cable_stream_source, *args, &block)
def assert_no_turbo_cable_stream_source(...)
assert_no_selector(:turbo_cable_stream_source, ...)
end

Capybara.add_selector :turbo_cable_stream_source do
Expand Down
4 changes: 1 addition & 3 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
ActionCable.server.config.logger = Logger.new(STDOUT) if ENV["VERBOSE"]

module ActionViewTestCaseExtensions
def render(*args, &block)
ApplicationController.renderer.render(*args, &block)
end
delegate :render, to: ApplicationController
end

class ActiveSupport::TestCase
Expand Down
6 changes: 3 additions & 3 deletions turbo-rails.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ Gem::Specification.new do |s|
s.homepage = "https://github.com/hotwired/turbo-rails"
s.license = "MIT"

s.required_ruby_version = ">= 2.6.0"
s.required_ruby_version = ">= 3.1"

s.add_dependency "actionpack", ">= 6.0.0"
s.add_dependency "railties", ">= 6.0.0"
s.add_dependency "actionpack", ">= 7.1.0"
s.add_dependency "railties", ">= 7.1.0"

s.files = Dir["{app,config,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]

Expand Down
Loading