slim-rails 3.7.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5cc57cd0be673d5ceb521c08dd5b3877e73f79842dd4766341f35872287fe1d
4
- data.tar.gz: 54e93a2b7a14023c34eb815b753bbd1a29454fbc0402186d70bc09fe82a06abc
3
+ metadata.gz: a43faa0b0addf8a1b9413e5089bc37b79d95e7bed97c65dd096df5b9b1fe15b5
4
+ data.tar.gz: 0e9cd06620beed82070914ff983f41e66d9ab8aae53ada9507ef44ee1ddcb23c
5
5
  SHA512:
6
- metadata.gz: 3c848a2695899792ba05f695a519bf8454c8c6129a8c0a2fb2889526e8f0a16d5dc39578dc5123f2b2bc64f3a1e785073637ceff124759db9815d8c7cf19e76b
7
- data.tar.gz: 41f330acf34c5d0493fbea601e44539f6fc99a4a5ac5bc4818da49ff4a3fb109eed0d5398ca59859a6fdce16e88bffe7aefcc9331997b1c5c61d5b7750539f26
6
+ metadata.gz: eae875fa6757d855e94ad2fadd66244681cc03cd803175e686f3c87798c0430c1361a4dc93383cba971e002baf041611c815b21801cab0699b6376ad6eb2b639
7
+ data.tar.gz: 9f462d2e2789bae3793104b8811fa9b423dfdda23669b770d2165f58e82237da20501cc59da741edeab1923564d6571a1f811f5642e41342d732603cdd40b594
data/CHANGELOG.md CHANGED
@@ -1,3 +1,39 @@
1
+ ## 4.0.1 (September 19, 2026)
2
+
3
+ - Align Rails dependencies with supported versions ([#221])
4
+ - Drop Support for Rails 6.1 and older
5
+ - Remove legacy Rails 6.1 and older support code ([#223])
6
+ - Preserve Sprockets context dependency metadata ([#217])
7
+ - Track compiled Slim render calls in template digests ([#220])
8
+ - Generate valid block markup for attachment collections ([#218])
9
+ - Update gemspec metadata and remove unused development dependencies ([#213])
10
+ - CI: Restrict GitHub Actions workflow permissions to contents: read ([#215])
11
+ - CI: Add Ruby 4.0 to CI Matrix ([#212])
12
+ - CI: Fix CI failures with minitest v6 ([#210])
13
+ - CI: Update Appraisals definitions for maintainability ([#209])
14
+ - Fix RuboCop config for development environment ([#211])
15
+
16
+ ## 4.0.0 (December 11, 2025)
17
+
18
+ - Add support for Rails Annotations and CodeStatistics ([#206])
19
+ - Drop support for Ruby 2.7 and Rails older than 7 ([205])
20
+ - Add Rails 8.1 to CI Matrix ([#204])
21
+
22
+ ## 3.7.0 (December 29, 2024)
23
+
24
+ - Support Rails 8.0 authentication generator ([#201])
25
+ - Update CI matrix for Rails 7.2 / 8.0 and Ruby 3.3 / 3.4 ([#197], [#200])
26
+
27
+ ## 3.6.3 (October 24, 2023)
28
+
29
+ - Fix ActionView::SyntaxErrorInTemplate when scaffolding with namespace ([#193])
30
+ - Update CI matrix for Rails 7.1 ([#194])
31
+
32
+ ## 3.6.2 (March 9, 2023)
33
+
34
+ - Update gemspec to be compatible with slim 5.1 ([#191])
35
+ - README: Separate out details from main things ([#190])
36
+
1
37
  ## 3.6.1 (February 14, 2023)
2
38
 
3
39
  - Fix to avoid depending on the failed Slim 5.0.0 release ([#188])
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # slim-rails [![Gem Version](https://img.shields.io/gem/v/slim-rails.svg)](http://rubygems.org/gems/slim-rails) [![Build Status](https://github.com/slim-template/slim-rails/actions/workflows/main.yml/badge.svg)](https://github.com/slim-template/slim-rails/actions/workflows/main.yml) [![Code Climate](https://codeclimate.com/github/slim-template/slim-rails/badges/gpa.svg)](https://codeclimate.com/github/slim-template/slim-rails)
1
+ # slim-rails [![Gem Version](https://img.shields.io/gem/v/slim-rails.svg)](http://rubygems.org/gems/slim-rails) [![Build Status](https://github.com/slim-template/slim-rails/actions/workflows/main.yml/badge.svg)](https://github.com/slim-template/slim-rails/actions/workflows/main.yml)
2
2
 
3
3
  slim-rails provides Slim generators for Rails:
4
4
 
@@ -20,7 +20,7 @@ Every time you generate a controller or scaffold, you'll get Slim templates.
20
20
 
21
21
  If you have existing `.erb` templates, check out our guide [How to convert your `.erb` templates to `.slim`](https://github.com/slim-template/slim/wiki/Template-Converters-ERB-to-SLIM) on how to achieve this.
22
22
 
23
- This gem is [tested with Ruby on Rails 5.2+](/.github/workflows/main.yml).
23
+ This gem is [tested with Ruby on Rails 7.0+](/.github/workflows/main.yml).
24
24
 
25
25
  ## History
26
26
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails/generators/erb/authentication/authentication_generator"
2
4
 
3
5
  module Slim
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails/generators/erb/controller/controller_generator"
2
4
 
3
5
  module Slim
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails/generators/erb/mailer/mailer_generator"
2
4
 
3
5
  module Slim
@@ -1,3 +1,3 @@
1
1
  ' <%= class_name %>#<%= @action %>
2
2
  = "\r\n" * 2
3
- ' #{@greeting}, find me in <%= @path %>
3
+ ' #{{@greeting}}, find me in <%= @path %>
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails/generators/erb/scaffold/scaffold_generator"
2
4
 
3
5
  module Slim
4
6
  module Generators
5
7
  class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator # :nodoc:
6
- if ::Rails::VERSION::MAJOR >= 7
7
- source_root File.expand_path(File.join("..", "templates"), __FILE__)
8
- else
9
- source_root File.expand_path(File.join("..", "legacy_templates"), __FILE__)
10
- end
8
+ source_root File.expand_path(File.join("..", "templates"), __FILE__)
11
9
 
12
10
  def copy_view_files
13
11
  available_views.each do |view|
@@ -15,9 +13,7 @@ module Slim
15
13
  template "#{view}.html.slim", File.join("app", "views", controller_file_path, filename)
16
14
  end
17
15
 
18
- if ::Rails::VERSION::MAJOR >= 7
19
- template "partial.html.slim", File.join("app/views", controller_file_path, "_#{singular_name}.html.slim")
20
- end
16
+ template "partial.html.slim", File.join("app/views", controller_file_path, "_#{singular_name}.html.slim")
21
17
  end
22
18
 
23
19
  hook_for :form_builder, as: :scaffold
@@ -1,6 +1,6 @@
1
1
  div id="#{dom_id <%= singular_name %>}"
2
2
  <% attributes.reject(&:password_digest?).each do |attribute| -%>
3
- p
3
+ div
4
4
  strong <%= attribute.human_name %>:
5
5
  <% if attribute.attachment? -%>
6
6
  = link_to <%= singular_name %>.<%= attribute.column_name %>.filename, <%= singular_name %>.<%= attribute.column_name %> if <%= singular_name %>.<%= attribute.column_name %>.attached?
@@ -1,31 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Slim
2
4
  module Rails
3
5
  module RegisterEngine
4
6
  class Transformer
5
7
  def self.call(input)
6
8
  context = input[:environment].context_class.new(input)
7
- Slim::Template.new(input[:name]) { input[:data] }.render(context)
9
+ data = Slim::Template.new(input[:name]) { input[:data] }.render(context)
10
+ context.metadata.merge(data: data)
8
11
  end
9
12
  end
10
13
 
11
14
  class << self
12
15
  def register_engine(app, config)
13
- if ::Rails::VERSION::MAJOR == 3
14
- _register_engine3(app)
15
- else
16
- _register_engine(config)
17
- end
16
+ _register_engine(config)
18
17
  end
19
18
 
20
19
  private
21
20
 
22
- def _register_engine3(app)
23
- return unless app.assets
24
- return unless app.assets.respond_to?(:register_engine)
25
-
26
- app.assets.register_engine(".slim", Slim::Template)
27
- end
28
-
29
21
  def _register_engine(config)
30
22
  return unless config.respond_to?(:assets)
31
23
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Slim
2
4
  module Rails
3
- VERSION = "3.7.0"
5
+ VERSION = "4.0.1"
4
6
  end
5
7
  end
data/lib/slim-rails.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "slim-rails/version"
2
4
  require "rails"
3
5
  require "slim"
@@ -14,25 +16,35 @@ module Slim
14
16
  ActiveSupport.on_load(:action_view) do
15
17
  ActiveSupport.on_load(:after_initialize) do
16
18
  begin # rubocop:disable Style/RedundantBegin
17
- if defined?(CacheDigests::DependencyTracker)
18
- # 'cache_digests' gem being used (overrides Rails 4 implementation)
19
- CacheDigests::DependencyTracker.register_tracker :slim, CacheDigests::DependencyTracker::ERBTracker
20
-
21
- if ::Rails.env.development?
22
- # recalculate cache digest keys for each request
23
- CacheDigests::TemplateDigestor.cache = ActiveSupport::Cache::NullStore.new
24
- end
25
- elsif ::Rails.version.to_s >= "4.0"
26
- # will only apply if Rails 4, which includes 'action_view/dependency_tracker'
27
- require "action_view/dependency_tracker"
28
- ActionView::DependencyTracker.register_tracker :slim, ActionView::DependencyTracker::ERBTracker
19
+ require "action_view/dependency_tracker"
20
+ tracker = if defined?(ActionView::DependencyTracker::RubyTracker)
21
+ ActionView::DependencyTracker::RubyTracker
22
+ else
23
+ ActionView::DependencyTracker::ERBTracker
29
24
  end
25
+ ActionView::DependencyTracker.register_tracker :slim, tracker
30
26
  rescue
31
27
  # likely this version of Rails doesn't support dependency tracking
32
28
  end
33
29
  end
34
30
  end
35
31
  end
32
+
33
+ if ::Rails::VERSION::MAJOR >= 8 && ::Rails::VERSION::MINOR >= 2
34
+ initializer "slim_rails.configure_code_statistics" do
35
+ require "rails/code_statistics"
36
+
37
+ ::Rails::CodeStatistics.register_extension("slim")
38
+ end
39
+ end
40
+
41
+ initializer "slim_rails.configure_source_annotation" do
42
+ require "rails/source_annotation_extractor"
43
+
44
+ ::Rails::SourceAnnotationExtractor::Annotation.register_extensions("slim") do |tag|
45
+ /\s*\/\s*(#{tag}):?\s*(.*)$/
46
+ end
47
+ end
36
48
  end
37
49
  end
38
50
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonardo Almeida
8
8
  - Janusz Mordarski
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-12-29 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: actionpack
@@ -17,28 +16,28 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: '3.1'
19
+ version: '7.0'
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
- version: '3.1'
26
+ version: '7.0'
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: railties
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - ">="
33
32
  - !ruby/object:Gem::Version
34
- version: '3.1'
33
+ version: '7.0'
35
34
  type: :runtime
36
35
  prerelease: false
37
36
  version_requirements: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - ">="
40
39
  - !ruby/object:Gem::Version
41
- version: '3.1'
40
+ version: '7.0'
42
41
  - !ruby/object:Gem::Dependency
43
42
  name: slim
44
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,63 +65,21 @@ dependencies:
66
65
  - !ruby/object:Gem::Version
67
66
  version: '6.0'
68
67
  - !ruby/object:Gem::Dependency
69
- name: sprockets-rails
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- type: :development
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: slim_lint
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: 0.24.0
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: 0.24.0
96
- - !ruby/object:Gem::Dependency
97
- name: rocco
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: redcarpet
68
+ name: actionmailer
112
69
  requirement: !ruby/object:Gem::Requirement
113
70
  requirements:
114
71
  - - ">="
115
72
  - !ruby/object:Gem::Version
116
- version: '0'
73
+ version: '7.0'
117
74
  type: :development
118
75
  prerelease: false
119
76
  version_requirements: !ruby/object:Gem::Requirement
120
77
  requirements:
121
78
  - - ">="
122
79
  - !ruby/object:Gem::Version
123
- version: '0'
80
+ version: '7.0'
124
81
  - !ruby/object:Gem::Dependency
125
- name: awesome_print
82
+ name: appraisal
126
83
  requirement: !ruby/object:Gem::Requirement
127
84
  requirements:
128
85
  - - ">="
@@ -136,21 +93,7 @@ dependencies:
136
93
  - !ruby/object:Gem::Version
137
94
  version: '0'
138
95
  - !ruby/object:Gem::Dependency
139
- name: actionmailer
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '3.1'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '3.1'
152
- - !ruby/object:Gem::Dependency
153
- name: appraisal
96
+ name: standardrb
154
97
  requirement: !ruby/object:Gem::Requirement
155
98
  requirements:
156
99
  - - ">="
@@ -164,19 +107,19 @@ dependencies:
164
107
  - !ruby/object:Gem::Version
165
108
  version: '0'
166
109
  - !ruby/object:Gem::Dependency
167
- name: standardrb
110
+ name: slim_lint
168
111
  requirement: !ruby/object:Gem::Requirement
169
112
  requirements:
170
113
  - - ">="
171
114
  - !ruby/object:Gem::Version
172
- version: '0'
115
+ version: 0.24.0
173
116
  type: :development
174
117
  prerelease: false
175
118
  version_requirements: !ruby/object:Gem::Requirement
176
119
  requirements:
177
120
  - - ">="
178
121
  - !ruby/object:Gem::Version
179
- version: '0'
122
+ version: 0.24.0
180
123
  description: Provides the generator settings required for Rails to use Slim
181
124
  email:
182
125
  - lalmeida08@gmail.com
@@ -199,11 +142,6 @@ files:
199
142
  - lib/generators/slim/mailer/templates/layout.text.slim
200
143
  - lib/generators/slim/mailer/templates/view.html.slim
201
144
  - lib/generators/slim/mailer/templates/view.text.slim
202
- - lib/generators/slim/scaffold/legacy_templates/_form.html.slim.tt
203
- - lib/generators/slim/scaffold/legacy_templates/edit.html.slim.tt
204
- - lib/generators/slim/scaffold/legacy_templates/index.html.slim.tt
205
- - lib/generators/slim/scaffold/legacy_templates/new.html.slim.tt
206
- - lib/generators/slim/scaffold/legacy_templates/show.html.slim.tt
207
145
  - lib/generators/slim/scaffold/scaffold_generator.rb
208
146
  - lib/generators/slim/scaffold/templates/_form.html.slim.tt
209
147
  - lib/generators/slim/scaffold/templates/edit.html.slim.tt
@@ -217,8 +155,10 @@ files:
217
155
  homepage: https://github.com/slim-template/slim-rails
218
156
  licenses:
219
157
  - MIT
220
- metadata: {}
221
- post_install_message:
158
+ metadata:
159
+ homepage_uri: https://github.com/slim-template/slim-rails
160
+ source_code_uri: https://github.com/slim-template/slim-rails
161
+ changelog_uri: https://github.com/slim-template/slim-rails/releases
222
162
  rdoc_options: []
223
163
  require_paths:
224
164
  - lib
@@ -226,15 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
226
166
  requirements:
227
167
  - - ">="
228
168
  - !ruby/object:Gem::Version
229
- version: 2.0.0
169
+ version: 3.0.0
230
170
  required_rubygems_version: !ruby/object:Gem::Requirement
231
171
  requirements:
232
172
  - - ">="
233
173
  - !ruby/object:Gem::Version
234
174
  version: '0'
235
175
  requirements: []
236
- rubygems_version: 3.5.23
237
- signing_key:
176
+ rubygems_version: 4.0.20
238
177
  specification_version: 4
239
178
  summary: Slim templates generator for Rails
240
179
  test_files: []
@@ -1,14 +0,0 @@
1
- = form_for @<%= singular_table_name %> do |f|
2
- - if @<%= singular_table_name %>.errors.any?
3
- #error_explanation
4
- h2 = "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
5
- ul
6
- - @<%= singular_table_name %>.errors.full_messages.each do |message|
7
- li = message
8
-
9
- <% attributes.each do |attribute| -%>
10
- .field
11
- = f.label :<%= attribute.name %>
12
- = f.<%= attribute.field_type %> :<%= attribute.name %>
13
- <% end -%>
14
- .actions = f.submit
@@ -1,7 +0,0 @@
1
- h1 Editing <%= singular_table_name %>
2
-
3
- == render "form"
4
-
5
- => link_to "Show", @<%= singular_table_name %>
6
- '|
7
- =< link_to "Back", <%= index_helper %>_path
@@ -1,25 +0,0 @@
1
- h1 Listing <%= plural_table_name %>
2
-
3
- table
4
- thead
5
- tr
6
- <% attributes.each do |attribute| -%>
7
- th <%= attribute.human_name %>
8
- <% end -%>
9
- th
10
- th
11
- th
12
-
13
- tbody
14
- - @<%= plural_table_name %>.each do |<%= singular_table_name %>|
15
- tr
16
- <% attributes.each do |attribute| -%>
17
- td = <%= singular_table_name %>.<%= attribute.name %>
18
- <% end -%>
19
- td = link_to "Show", <%= singular_table_name %>
20
- td = link_to "Edit", edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
21
- td = link_to "Destroy", <%= singular_table_name %>, data: {confirm: "Are you sure?"}, method: :delete
22
-
23
- br
24
-
25
- = link_to "New <%= human_name %>", new_<%= singular_table_name %>_path
@@ -1,5 +0,0 @@
1
- h1 New <%= singular_table_name %>
2
-
3
- == render "form"
4
-
5
- = link_to "Back", <%= index_helper %>_path
@@ -1,11 +0,0 @@
1
- p#notice = notice
2
- <% attributes.each do |attribute| -%>
3
-
4
- p
5
- strong <%= attribute.human_name %>:
6
- = @<%= singular_table_name %>.<%= attribute.name %>
7
- <% end -%>
8
-
9
- => link_to "Edit", edit_<%= singular_table_name %>_path(@<%= singular_table_name %>)
10
- '|
11
- =< link_to "Back", <%= index_helper %>_path