mjml-rails 4.12.0 → 4.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b6b7aed097a59ac30303aaf45d11b7f736e521d80f861b93fbf1886be6a15a0
4
- data.tar.gz: 3d894ce65b6ba9c6f5818acfaf4d34dd57a85b29ed4a071870ff2c4cdc65c9ad
3
+ metadata.gz: 5a38b98e1971fed4a869a93244e2c8f1ad40d101e84722e8edffd8f2fed929a1
4
+ data.tar.gz: e75512c3a3897b8b56216d209d0b815685ccedb1a6826caaed61d85a9bd9b26a
5
5
  SHA512:
6
- metadata.gz: d3dd354857e11c5a8864365a1e19c591eaec48a1349d3f675522f6835e5c830d9dd0328957866cbb5e085f1fab6679dec1588f8233841a33626469e9d5eb17a1
7
- data.tar.gz: be4f6c9bf8192a20bba52cf2f196e33e96b9d6d7546efccb5c7efec9fb8295fd8caebff39f4131b4e9444dfc254b9c8814e039e529c43bb18fe7714ff0e2acd2
6
+ metadata.gz: 33c8776a5b4d5e54d12df6bccf63135947576b93d5fa37814f7617c3345730fb6d997ae90a273f12bc8030c6055632f17a6017b03bbed567a678a292e812f536
7
+ data.tar.gz: 4c8af93e7581f187e8d27df1347e638ea357ccdcb8308f16666b7b6581244e1eb0f4f356c2b4d26fabfa556271ff2a56f1cd59b75664bd89db4485a240a47ecc
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/mjml/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Mjml
4
4
  # Version number no longer matches MJML.io version
5
- VERSION = '4.12.0'
5
+ VERSION = '4.13.0'
6
6
  end
data/lib/mjml.rb CHANGED
@@ -48,6 +48,7 @@ module Mjml
48
48
  def self.valid_mjml_binary
49
49
  self.valid_mjml_binary = @@valid_mjml_binary ||
50
50
  check_for_custom_mjml_binary ||
51
+ check_for_bun_mjml_binary ||
51
52
  check_for_package_mjml_binary ||
52
53
  check_for_global_mjml_binary ||
53
54
  check_for_mrml_binary
@@ -74,8 +75,10 @@ module Mjml
74
75
  end
75
76
 
76
77
  def self.check_for_mjml_package(package_manager, bin_command, binary_path)
77
- pm_bin = `which #{package_manager}`.chomp
78
- return if pm_bin.blank?
78
+ stdout, _, status = Open3.capture3("which #{package_manager}")
79
+ return unless status.success?
80
+
81
+ pm_bin = stdout.chomp
79
82
 
80
83
  stdout, _, status = Open3.capture3("#{pm_bin} #{bin_command}")
81
84
  return unless status.success?
@@ -86,18 +89,32 @@ module Mjml
86
89
  nil
87
90
  end
88
91
 
92
+ def self.check_for_bun_mjml_binary
93
+ _, _, status = Open3.capture3('which bun')
94
+ return unless status.success?
95
+
96
+ # HINT: Bun always prioritizes local bins first and falls back to global installations
97
+ mjml_bin = 'bun run mjml'
98
+
99
+ return mjml_bin if check_version(mjml_bin)
100
+ end
101
+
89
102
  def self.check_for_package_mjml_binary
90
- check_for_mjml_package('bun', 'pm bin', ['mjml']) ||
91
- check_for_mjml_package('npm', 'root', ['.bin', 'mjml']) ||
103
+ check_for_mjml_package('npm', 'root', ['.bin', 'mjml']) ||
92
104
  check_for_mjml_package('yarn', 'bin mjml', [])
93
105
  end
94
106
 
95
107
  def self.check_for_global_mjml_binary
96
- mjml_bin = `which mjml`.chomp
108
+ stdout, _, status = Open3.capture3('which mjml')
109
+ return unless status.success?
110
+
111
+ mjml_bin = stdout.chomp
97
112
  return mjml_bin if mjml_bin.present? && check_version(mjml_bin)
98
113
  end
99
114
 
100
115
  def self.check_for_mrml_binary
116
+ return unless Mjml.use_mrml
117
+
101
118
  MRML.present?
102
119
  rescue NameError
103
120
  Mjml.mjml_binary_error_string = 'Couldn\'t find MRML - did you add \'mrml\' to your Gemfile?'
data/test/mjml_test.rb CHANGED
@@ -162,14 +162,26 @@ describe Mjml do
162
162
  it 'can use MRML and check for a valid binary' do
163
163
  Mjml.use_mrml = true
164
164
  Mjml.stubs(:check_for_custom_mjml_binary).returns(false)
165
+ Mjml.stubs(:check_for_bun_mjml_binary).returns(false)
165
166
  Mjml.stubs(:check_for_package_mjml_binary).returns(false)
166
167
  Mjml.stubs(:check_for_global_mjml_binary).returns(false)
167
168
  expect(Mjml.valid_mjml_binary).must_equal(true)
168
169
 
169
170
  Mjml.valid_mjml_binary = nil
170
171
  MRML.stubs(:present?).raises(NameError)
172
+ Mjml.stubs(:puts) # silence printed error message from test output
171
173
  assert_nil(Mjml.valid_mjml_binary)
172
174
  expect(Mjml.mjml_binary_error_string).must_equal 'Couldn\'t find MRML - did you add \'mrml\' to your Gemfile?'
173
175
  end
176
+
177
+ it 'with nothing on the path, sets valid_mjml_binary to nil' do
178
+ old_path = ENV['PATH']
179
+ ENV['PATH'] = './test/fixtures/valid-mjml-binary/empty-path/'
180
+
181
+ Mjml.stubs(:puts) # silence printed error message from test output
182
+ assert_nil(Mjml.valid_mjml_binary)
183
+ ensure
184
+ ENV['PATH'] = old_path
185
+ end
174
186
  end
175
187
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.12.0
4
+ version: 4.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Loffler
@@ -36,7 +36,7 @@ cert_chain:
36
36
  Qqk2dn/fFE9vdcl9OaOw2Zizne/1VFL/jkzXLqnLgbKD/q129mVCBgw2CKYnQfMN
37
37
  4RwBjPyqnMxWnSq6Ycn7HdFEkgyf2cAxFfH5QtDsjEuca+/LAJMeAQ==
38
38
  -----END CERTIFICATE-----
39
- date: 2024-08-24 00:00:00.000000000 Z
39
+ date: 2025-01-03 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: byebug
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.5.11
195
+ rubygems_version: 3.5.22
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: MJML + ERb templates
metadata.gz.sig CHANGED
Binary file