roadie-rails 3.0.0 → 3.2.0

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: 3763b68398678ce8340c842702ed7321dce653b992c336c5d646e554696f2e83
4
- data.tar.gz: a09a2aa1df722ddb5d13635ea1efaab6756c44f9a50258e27c2042b71e4dd8dc
3
+ metadata.gz: 3adee731af7278bfca961e1573c6ed2b6dcb666bbf862b42995d241d1558799c
4
+ data.tar.gz: 8dc5dbf397cbefe8465754dc609987cb3abf3f24b495b340e072bcef38d8313c
5
5
  SHA512:
6
- metadata.gz: fb6f168beb438f59455e2b04ce07e6face9b4db9f226e5603bbe20bdaf0568ea2870ace9d6edde1884fbe0e09958d74f19b5a6c565d08b572459a60aee8ce203
7
- data.tar.gz: e0b3f1146229dc609018db1d77d544ef4f9e9c3644e6a834b38dd7b00adcdafef02d79e248c914b24db1622beaacdffefbcc863383fd1b9005763bdab8ad3cd1
6
+ metadata.gz: b8ab3af161873b9a05e887b5a0556094450d34b69b89d8703df9cc5f2cf8c48b248ea6ed23e28acca0fef274c5102b3ff7a7c47ab175ccaf619ed692239c5d8c
7
+ data.tar.gz: 5caf0748d8c9aadf006e3e3a7a21bd36b41214e1ecf83d7d6d387dc02cac0e82a5d6652865f29aace10cec05c25d5d87606193b59a5d22d08475f4e166a0b5a0
@@ -1,9 +1,19 @@
1
1
  name: Main
2
2
  on:
3
+ schedule:
4
+ # Run on the first day of every month
5
+ # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
6
+ - cron: '0 0 1 * *'
7
+ # Allow running manually
8
+ # For more details: https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow?tool=webui
9
+ workflow_dispatch:
3
10
  push:
4
11
  branches:
5
12
  - main
6
13
  - master
14
+ paths-ignore:
15
+ - '**.md'
16
+ - '**.txt'
7
17
 
8
18
  pull_request:
9
19
  types: [opened, synchronize, reopened]
@@ -11,15 +21,21 @@ on:
11
21
  jobs:
12
22
  base:
13
23
  name: Ruby ${{ matrix.ruby }}
14
- runs-on: ubuntu-20.04
24
+ runs-on: ubuntu-latest
15
25
  strategy:
16
26
  fail-fast: false
17
27
  matrix:
18
- ruby: ["2.6", "2.7", "3.0", "3.1"]
28
+ ruby:
29
+ - "2.6"
30
+ - "2.7"
31
+ - "3.0"
32
+ - "3.1"
33
+ - "3.2"
34
+ - "3.3"
19
35
 
20
36
  steps:
21
37
  - name: Checkout code
22
- uses: actions/checkout@v2
38
+ uses: actions/checkout@v4
23
39
 
24
40
  # This setup is not compatible with the way Travis CI was
25
41
  # setup, so the cache will only work for the root folder.
@@ -30,14 +46,23 @@ jobs:
30
46
  bundler-cache: true
31
47
 
32
48
  - name: Rake
33
- run: rake
49
+ run: bundle exec rake
34
50
 
35
- - uses: codecov/codecov-action@v2
51
+ - uses: codecov/codecov-action@v4
36
52
 
37
53
  lint:
38
54
  runs-on: ubuntu-latest
39
55
  steps:
56
+ - name: Checkout code
57
+ uses: actions/checkout@v4
58
+
59
+ # This setup is not compatible with the way Travis CI was
60
+ # setup, so the cache will only work for the root folder.
61
+ - name: Setup Ruby
62
+ uses: ruby/setup-ruby@v1
63
+ with:
64
+ ruby-version: "3.3"
65
+ bundler-cache: true
66
+
40
67
  - name: standardrb
41
- env:
42
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43
- uses: amoeba/standardrb-action@v2
68
+ run: bundle exec standardrb
data/.standard.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby_version: 2.6
2
+ parallel: true
data/Changelog.md CHANGED
@@ -1,6 +1,25 @@
1
1
  ### development version
2
2
 
3
- [full changelog](https://github.com/Mange/roadie-rails/compare/v3.0.0...master)
3
+ [full changelog](https://github.com/Mange/roadie-rails/compare/v3.2.0...master)
4
+
5
+ ### 3.2.0
6
+
7
+ [full changelog](https://github.com/Mange/roadie-rails/compare/v3.1.0...v3.2.0)
8
+
9
+ * Support [Propshaft](https://github.com/rails/propshaft) - [Juani Villarejo](https://github.com/jvillarejo) [#114](https://github.com/Mange/roadie-rails/pull/114)
10
+ * Add support (CI) for Ruby 3.3.
11
+ * Last version for supporting Ruby 2.6 (EoL).
12
+
13
+ ### 3.1.0
14
+
15
+ [full changelog](https://github.com/Mange/roadie-rails/compare/v3.0.0...v3.1.0)
16
+
17
+ * Support Rails 7.1 - [Frederik Spang](https://github.com/frederikspang)
18
+ * Add support for Ruby 3.2.
19
+
20
+ Development changes:
21
+
22
+ * Fix Github CI lint job with standardrb.
4
23
 
5
24
  ### 3.0.0
6
25
 
data/README.md CHANGED
@@ -20,7 +20,7 @@ This gem hooks up your Rails application with Roadie to help you generate HTML e
20
20
  [Add this gem to your Gemfile as recommended by Rubygems][gem] and run `bundle install`.
21
21
 
22
22
  ```ruby
23
- gem 'roadie-rails', '~> 3.0'
23
+ gem 'roadie-rails'
24
24
  ```
25
25
 
26
26
  ## Usage ##
@@ -281,16 +281,9 @@ end
281
281
  Tested with Github Actions on multiple Ruby and Rails versions:
282
282
 
283
283
  * Ruby:
284
- * MRI 2.6
285
- * MRI 2.7
286
- * MRI 3.0
287
- * MRI 3.1
284
+ See [Workflow Matrix](/.github/workflows/main.yml)
288
285
  * Rails
289
- * 5.1
290
- * 5.2
291
- * 6.0
292
- * 6.1
293
- * 7.0
286
+ See [Integration Spec File](/spec/integration_spec.rb)
294
287
 
295
288
  Please note that [all Rails-versions are not compatible with all Ruby-versions](https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html).
296
289
  Let me know if you want any other combination supported officially.
@@ -51,7 +51,7 @@ module Roadie
51
51
  [a-z0-9]{64} # New style is 64 characters
52
52
  )
53
53
  \. # Dot for the file extension
54
- /x.freeze
54
+ /x
55
55
 
56
56
  def remove_asset_digest(path)
57
57
  path.gsub(DIGEST_PATTERN, ".")
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Roadie
4
+ module Rails
5
+ class AssetPropshaftProvider
6
+ include Roadie::AssetProvider
7
+
8
+ def initialize(assembly)
9
+ @assembly = assembly
10
+ @stylesheets = {}
11
+ end
12
+
13
+ def find_stylesheet(stylesheet_asset_path)
14
+ stylesheet = @stylesheets[stylesheet_asset_path]
15
+ return stylesheet if stylesheet.present?
16
+
17
+ path, digest = extract_path_and_digest(stylesheet_asset_path)
18
+
19
+ asset = @assembly.load_path.find(path)
20
+ if asset.present? && asset.fresh?(digest)
21
+ compiled_content = @assembly.compilers.compile(asset)
22
+
23
+ stylesheet = Stylesheet.new(stylesheet_asset_path, compiled_content.force_encoding("UTF-8"))
24
+ @stylesheets[stylesheet_asset_path] = stylesheet
25
+ end
26
+
27
+ stylesheet
28
+ end
29
+
30
+ private
31
+
32
+ def extract_path_and_digest(stylesheet_asset_path)
33
+ full_path = stylesheet_asset_path.sub(%r{#{::Rails.configuration.assets.prefix}/}, "")
34
+ digest = full_path[/-([0-9a-zA-Z]{7,128})\.(?!digested)[^.]+\z/, 1]
35
+ path = digest ? full_path.sub("-#{digest}", "") : full_path
36
+
37
+ [path, digest]
38
+ end
39
+ end
40
+ end
41
+ end
@@ -106,7 +106,7 @@ module Roadie
106
106
 
107
107
  def []=(option, value)
108
108
  if ATTRIBUTE_NAMES.include?(option)
109
- public_send("#{option}=", value)
109
+ public_send(:"#{option}=", value)
110
110
  else
111
111
  raise ArgumentError, "#{option.inspect} is not a valid option"
112
112
  end
@@ -14,8 +14,11 @@ module Roadie
14
14
 
15
15
  if app.config.respond_to?(:assets) && app.config.assets
16
16
  if app.assets
17
- config.roadie.asset_providers <<
18
- AssetPipelineProvider.new(app.assets)
17
+ config.roadie.asset_providers << AssetPipelineProvider.new(app.assets)
18
+ elsif defined?(Propshaft)
19
+ config.after_initialize do |app|
20
+ config.roadie.asset_providers << AssetPropshaftProvider.new(app.assets)
21
+ end
19
22
  else
20
23
  app.config.assets.configure do |env|
21
24
  config.roadie.asset_providers <<
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Roadie
4
4
  module Rails
5
- VERSION = "3.0.0"
5
+ VERSION = "3.2.0"
6
6
  end
7
7
  end
data/lib/roadie/rails.rb CHANGED
@@ -15,6 +15,7 @@ require "roadie/rails/document_builder"
15
15
  require "roadie/rails/mail_inliner"
16
16
 
17
17
  require "roadie/rails/asset_pipeline_provider"
18
+ require "roadie/rails/asset_propshaft_provider"
18
19
 
19
20
  require "roadie/rails/mailer"
20
21
 
data/roadie-rails.gemspec CHANGED
@@ -18,16 +18,18 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.files = `git ls-files | grep -v ^spec`.split($INPUT_RECORD_SEPARATOR)
20
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
21
  spec.extra_rdoc_files = %w[README.md Changelog.md LICENSE.txt]
23
22
  spec.require_paths = ["lib"]
24
23
 
25
- spec.add_dependency "railties", ">= 5.1", "< 7.1"
24
+ spec.add_dependency "railties", ">= 5.1", "< 8.0"
26
25
  spec.add_dependency "roadie", "~> 5.0"
27
26
 
28
27
  spec.add_development_dependency "bundler", "~> 2.2"
29
- spec.add_development_dependency "rails", ">= 5.1", "< 7.1"
28
+ spec.add_development_dependency "rails", ">= 5.1", "< 8.0"
30
29
  spec.add_development_dependency "rspec", "~> 3.10"
31
30
  spec.add_development_dependency "rspec-collection_matchers"
32
31
  spec.add_development_dependency "rspec-rails"
32
+ spec.add_development_dependency "standard"
33
+
34
+ spec.post_install_message = "This would be the last version that supports ruby 2.6"
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roadie-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Bergmark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-02 00:00:00.000000000 Z
11
+ date: 2024-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.1'
22
+ version: '8.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.1'
32
+ version: '8.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: roadie
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +67,7 @@ dependencies:
67
67
  version: '5.1'
68
68
  - - "<"
69
69
  - !ruby/object:Gem::Version
70
- version: '7.1'
70
+ version: '8.0'
71
71
  type: :development
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: '5.1'
78
78
  - - "<"
79
79
  - !ruby/object:Gem::Version
80
- version: '7.1'
80
+ version: '8.0'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rspec
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +120,20 @@ dependencies:
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: standard
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
123
137
  description: Hooks Roadie into your Rails application to help with email generation.
124
138
  email:
125
139
  - magnus.bergmark@gmail.com
@@ -134,6 +148,7 @@ files:
134
148
  - ".gitignore"
135
149
  - ".rubocop.yml"
136
150
  - ".solargraph.yml"
151
+ - ".standard.yml"
137
152
  - Changelog.md
138
153
  - Gemfile
139
154
  - LICENSE.txt
@@ -144,6 +159,7 @@ files:
144
159
  - lib/roadie-rails.rb
145
160
  - lib/roadie/rails.rb
146
161
  - lib/roadie/rails/asset_pipeline_provider.rb
162
+ - lib/roadie/rails/asset_propshaft_provider.rb
147
163
  - lib/roadie/rails/automatic.rb
148
164
  - lib/roadie/rails/document_builder.rb
149
165
  - lib/roadie/rails/inline_on_delivery.rb
@@ -159,7 +175,7 @@ homepage: http://github.com/Mange/roadie-rails
159
175
  licenses:
160
176
  - MIT
161
177
  metadata: {}
162
- post_install_message:
178
+ post_install_message: This would be the last version that supports ruby 2.6
163
179
  rdoc_options: []
164
180
  require_paths:
165
181
  - lib
@@ -174,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
190
  - !ruby/object:Gem::Version
175
191
  version: '0'
176
192
  requirements: []
177
- rubygems_version: 3.0.9
193
+ rubygems_version: 3.5.10
178
194
  signing_key:
179
195
  specification_version: 4
180
196
  summary: Making HTML emails comfortable for the Rails rockstars