Skip to content

Commit ee5e80d

Browse files
committed
Give Rails 7.1 a try
1 parent 4c7cd99 commit ee5e80d

File tree

12 files changed

+83
-103
lines changed

12 files changed

+83
-103
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,27 @@ jobs:
1212
fail-fast: false
1313
matrix:
1414
include:
15-
- rails: 5.1
16-
ruby: 2.5
17-
18-
- rails: 5.2
19-
ruby: 2.5
20-
- rails: 5.2
21-
ruby: 2.6
22-
- rails: 5.2
23-
ruby: jruby-9.3
24-
25-
- rails: "6.0"
26-
ruby: 2.6
2715
- rails: "6.0"
2816
ruby: 2.7
29-
- rails: "6.0"
30-
ruby: jruby
3117

3218
- rails: "6.1"
3319
ruby: "2.7"
3420
- rails: "6.1"
35-
ruby: jruby
36-
37-
- rails: "7.0"
3821
ruby: "3.0"
22+
- rails: "6.1"
23+
ruby: "3.1"
24+
- rails: "6.1"
25+
ruby: "3.2"
26+
3927
- rails: "7.0"
4028
ruby: 3.1
4129
- rails: "7.0"
4230
ruby: 3.2
43-
- rails: "7.0"
44-
ruby: jruby
45-
- rails: "7.1"
46-
ruby: "3.0"
31+
4732
- rails: "7.1"
4833
ruby: 3.1
4934
- rails: "7.1"
5035
ruby: 3.2
51-
- rails: "7.1"
52-
ruby: jruby
5336

5437
env:
5538
BUNDLE_GEMFILE: gemfiles/rails_${{ matrix.rails }}.gemfile

Appraisals

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
1-
appraise "rails_5.1" do
2-
gem "rails", "~> 5.1.5"
3-
gem "sqlite3", "~> 1.3.0", platform: :ruby
4-
gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
5-
end
6-
7-
appraise "rails_5.2" do
8-
gem "rails", "~> 5.2.0"
9-
gem "sqlite3", "~> 1.3.0", platform: :ruby
10-
gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
11-
end
12-
131
appraise "rails_6.0" do
142
gem "rails", "~> 6.0.0"
15-
gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
163
gem "sqlite3", "~> 1.4.0", platform: :ruby
174
end
185

196
appraise "rails_6.1" do
207
gem "rails", "~> 6.1.0"
21-
gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
228
gem "sqlite3", "~> 1.4.0", platform: :ruby
239
end
2410

2511
appraise "rails_7.0" do
26-
# Remove this deprecated gem once the following patch is released
27-
# https://github.com/rails-api/active_model_serializers/pull/2428
28-
gem "thread_safe", "~> 0.3.6"
29-
3012
gem "rails", "~> 7.0.0"
31-
gem "activerecord-jdbcsqlite3-adapter", "~> 70.0", platform: :jruby
13+
gem "sqlite3", "~> 1.4.0", platform: :ruby
14+
end
15+
16+
appraise "rails_7.1" do
17+
gem "rails", "~> 7.1.0"
3218
gem "sqlite3", "~> 1.4.0", platform: :ruby
3319
end

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ gem "minitest-rails"
1212
gem "rake"
1313
gem "sprockets", "< 4.0"
1414

15-
gem "rails", "~> 7.0.0"
15+
gem "rails", "~> 7.1.0"
1616
gem "sqlite3", "~> 1.4.0", platform: :ruby
1717

1818
gem "rubocop"

gemfiles/rails_5.2.gemfile

Lines changed: 0 additions & 22 deletions
This file was deleted.

gemfiles/rails_6.0.gemfile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,8 @@ gem "minitest"
1010
gem "minitest-rails"
1111
gem "rake"
1212
gem "sprockets", "< 4.0"
13-
gem "semantic_logger", github: "reidmorrison/semantic_logger"
1413
gem "rails", "~> 6.0.0"
1514
gem "sqlite3", "~> 1.4.0", platform: :ruby
16-
gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
17-
18-
group :development do
19-
gem "rubocop"
20-
end
15+
gem "rubocop"
2116

2217
gemspec path: "../"

gemfiles/rails_6.1.gemfile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,8 @@ gem "minitest"
1010
gem "minitest-rails"
1111
gem "rake"
1212
gem "sprockets", "< 4.0"
13-
gem "semantic_logger", github: "reidmorrison/semantic_logger"
1413
gem "rails", "~> 6.1.0"
1514
gem "sqlite3", "~> 1.4.0", platform: :ruby
16-
gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
17-
18-
group :development do
19-
gem "rubocop"
20-
end
15+
gem "rubocop"
2116

2217
gemspec path: "../"

gemfiles/rails_7.0.gemfile

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,8 @@ gem "minitest"
1010
gem "minitest-rails"
1111
gem "rake"
1212
gem "sprockets", "< 4.0"
13-
gem "semantic_logger", github: "reidmorrison/semantic_logger"
1413
gem "rails", "~> 7.0.0"
1514
gem "sqlite3", "~> 1.4.0", platform: :ruby
16-
gem "thread_safe", "~> 0.3.6"
17-
gem "activerecord-jdbcsqlite3-adapter", "~> 70.0", platform: :jruby
18-
19-
group :development do
20-
gem "rubocop"
21-
end
15+
gem "rubocop"
2216

2317
gemspec path: "../"

gemfiles/rails_5.1.gemfile renamed to gemfiles/rails_7.1.gemfile

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,8 @@ gem "minitest"
1010
gem "minitest-rails"
1111
gem "rake"
1212
gem "sprockets", "< 4.0"
13-
gem "semantic_logger", github: "reidmorrison/semantic_logger"
14-
gem "rails", "~> 5.1.5"
15-
gem "sqlite3", "~> 1.3.0", platform: :ruby
16-
gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
17-
18-
group :development do
19-
gem "rubocop"
20-
end
13+
gem "rails", "~> 7.1.0"
14+
gem "sqlite3", "~> 1.4.0", platform: :ruby
15+
gem "rubocop"
2116

2217
gemspec path: "../"

lib/rails_semantic_logger.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,5 @@ def self.subscriber_patterns(subscriber)
5858

5959
require("rails_semantic_logger/extensions/mongoid/config") if defined?(Mongoid)
6060
require("rails_semantic_logger/extensions/active_support/logger") if defined?(ActiveSupport::Logger)
61+
require("rails_semantic_logger/extensions/active_support/log_subscriber") if defined?(ActiveSupport::LogSubscriber)
6162
require("rails_semantic_logger/extensions/rack/server") if defined?(Rack::Server)

lib/rails_semantic_logger/action_view/log_subscriber.rb

Lines changed: 52 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ def initialize
1919
def render_template(event)
2020
return unless should_log?
2121

22-
payload = {
22+
payload = {
2323
template: from_rails_root(event.payload[:identifier])
2424
}
25-
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
25+
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
2626
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
2727

2828
logger.measure(
@@ -36,11 +36,11 @@ def render_template(event)
3636
def render_partial(event)
3737
return unless should_log?
3838

39-
payload = {
39+
payload = {
4040
partial: from_rails_root(event.payload[:identifier])
4141
}
42-
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
43-
payload[:cache] = event.payload[:cache_hit] unless event.payload[:cache_hit].nil?
42+
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
43+
payload[:cache] = event.payload[:cache_hit] unless event.payload[:cache_hit].nil?
4444
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
4545

4646
logger.measure(
@@ -56,11 +56,11 @@ def render_collection(event)
5656

5757
identifier = event.payload[:identifier] || "templates"
5858

59-
payload = {
59+
payload = {
6060
template: from_rails_root(identifier),
6161
count: event.payload[:count]
6262
}
63-
payload[:cache_hits] = event.payload[:cache_hits] if event.payload[:cache_hits]
63+
payload[:cache_hits] = event.payload[:cache_hits] if event.payload[:cache_hits]
6464
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
6565

6666
logger.measure(
@@ -72,16 +72,58 @@ def render_collection(event)
7272
end
7373

7474
def start(name, id, payload)
75-
if (name == "render_template.action_view") && should_log?
76-
payload = {template: from_rails_root(payload[:identifier])}
75+
if (name == "render_template.action_view" || name == "render_layout.action_view") && should_log?
76+
qualifier = " layout" if name == "render_layout.action_view"
77+
payload = { template: from_rails_root(payload[:identifier]) }
7778
payload[:within] = from_rails_root(payload[:layout]) if payload[:layout]
7879

79-
logger.send(self.class.rendered_log_level, message: "Rendering", payload: payload)
80+
logger.send(self.class.rendered_log_level, message: "Rendering#{qualifier}", payload: payload)
8081
end
8182

8283
super
8384
end
8485

86+
if (Rails::VERSION::MAJOR == 7 && Rails::VERSION::MINOR >= 1) || Rails::VERSION::MAJOR > 7
87+
class Start # :nodoc:
88+
def start(name, id, payload)
89+
return unless %w[render_template.action_view render_layout.action_view].include?(name)
90+
91+
qualifier = " layout" if name == "render_layout.action_view"
92+
payload = { template: from_rails_root(payload[:identifier]) }
93+
payload[:within] = from_rails_root(payload[:layout]) if payload[:layout]
94+
95+
logger.debug(message: "Rendering#{qualifier}", payload: payload)
96+
end
97+
98+
def finish(name, id, payload) end
99+
100+
private
101+
102+
def from_rails_root(string)
103+
string = string.sub(rails_root, "")
104+
string.sub!(VIEWS_PATTERN, "")
105+
string
106+
end
107+
108+
def rails_root # :doc:
109+
@root ||= "#{Rails.root}/"
110+
end
111+
112+
def logger
113+
@logger ||= SemanticLogger["ActionView"]
114+
end
115+
end
116+
117+
def self.attach_to(*)
118+
ActiveSupport::Notifications.unsubscribe("render_template.action_view")
119+
ActiveSupport::Notifications.unsubscribe("render_layout.action_view")
120+
ActiveSupport::Notifications.subscribe("render_template.action_view", RailsSemanticLogger::ActionView::LogSubscriber::Start.new)
121+
ActiveSupport::Notifications.subscribe("render_layout.action_view", RailsSemanticLogger::ActionView::LogSubscriber::Start.new)
122+
123+
super
124+
end
125+
end
126+
85127
private
86128

87129
@logger = SemanticLogger["ActionView"]

0 commit comments

Comments
 (0)