mjml-rails 4.12.1 → 4.14.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: '01907552b34958af3e345325340d7c93d23fff1ab5510b8a0af948b2f58b66f1'
4
- data.tar.gz: 7cf08f76b582345db1a6e445c88bdb347031fa090e4af5aaa155d4fe834b31ef
3
+ metadata.gz: 68bb806e44c750ca14964989514f2b308044adf537823747f066a2f2afd05321
4
+ data.tar.gz: 1c1201c5c5162e13e0d82c7c55da03489ba8e6be2a537f8d3fb714f168f206ab
5
5
  SHA512:
6
- metadata.gz: 562b509f671c502a942e0ba76501441d0cad4670ca73514ae43ad82814f5e9e0bb853a89c8128617f3a7026cd0a7c591b43b999d3cc7bc2aed45b5e975f2ba63
7
- data.tar.gz: e57778aadf44939220cce799f9b80eab9e517c6c3d69fecf00fb8f35ddf7ec1a7ef517060ac63804606a23a93c834b7a9a9ca0635cbc9fd994ea266f74c89590
6
+ metadata.gz: 18208eee18ce2e30bdb5c1672ca783ac6fb9ba0cc62a8e16f4791148957f252d39737e19c8a1dc638dbd51014e32a64de0ddc4a7668d8c1fc5c646bb0d76d94a
7
+ data.tar.gz: 0cb782e9ab1c9bd32c46de35bc8c53ef5c4c3417772939f12337bbce8719028c7e1fce664cf1102367af737fb0716e2083c98a3a9d083d5a6795dcf23404d94a
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.1'
5
+ VERSION = '4.14.0'
6
6
  end
data/lib/mjml.rb CHANGED
@@ -45,9 +45,21 @@ module Mjml
45
45
  Open3.capture3("#{mjml_bin} #{args}")
46
46
  end
47
47
 
48
+ def self.which(command)
49
+ if Gem.win_platform?
50
+ stdout, _, status = Open3.capture3("where #{command}")
51
+ else
52
+ stdout, _, status = Open3.capture3("which #{command}")
53
+ end
54
+ status.success? ? stdout.chomp : nil
55
+ rescue Errno::ENOENT
56
+ nil
57
+ end
58
+
48
59
  def self.valid_mjml_binary
49
60
  self.valid_mjml_binary = @@valid_mjml_binary ||
50
61
  check_for_custom_mjml_binary ||
62
+ check_for_bun_mjml_binary ||
51
63
  check_for_package_mjml_binary ||
52
64
  check_for_global_mjml_binary ||
53
65
  check_for_mrml_binary
@@ -74,10 +86,8 @@ module Mjml
74
86
  end
75
87
 
76
88
  def self.check_for_mjml_package(package_manager, bin_command, binary_path)
77
- stdout, _, status = Open3.capture3("which #{package_manager}")
78
- return unless status.success?
79
-
80
- pm_bin = stdout.chomp
89
+ pm_bin = Mjml.which(package_manager)
90
+ return unless pm_bin
81
91
 
82
92
  stdout, _, status = Open3.capture3("#{pm_bin} #{bin_command}")
83
93
  return unless status.success?
@@ -88,17 +98,24 @@ module Mjml
88
98
  nil
89
99
  end
90
100
 
101
+ def self.check_for_bun_mjml_binary
102
+ return unless Mjml.which('bun')
103
+
104
+ # HINT: Bun always prioritizes local bins first and falls back to global installations
105
+ mjml_bin = 'bun run mjml'
106
+
107
+ return mjml_bin if check_version(mjml_bin)
108
+ end
109
+
91
110
  def self.check_for_package_mjml_binary
92
- check_for_mjml_package('bun', 'pm bin', ['mjml']) ||
93
- check_for_mjml_package('npm', 'root', ['.bin', 'mjml']) ||
111
+ check_for_mjml_package('npm', 'root', ['.bin', 'mjml']) ||
94
112
  check_for_mjml_package('yarn', 'bin mjml', [])
95
113
  end
96
114
 
97
115
  def self.check_for_global_mjml_binary
98
- stdout, _, status = Open3.capture3('which mjml')
99
- return unless status.success?
116
+ mjml_bin = Mjml.which('mjml')
117
+ return unless mjml_bin
100
118
 
101
- mjml_bin = stdout.chomp
102
119
  return mjml_bin if mjml_bin.present? && check_version(mjml_bin)
103
120
  end
104
121
 
data/test/mjml_test.rb CHANGED
@@ -162,6 +162,7 @@ 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)
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.1
4
+ version: 4.14.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-09-06 00:00:00.000000000 Z
39
+ date: 2025-01-27 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