mjml-rb 0.3.4 → 0.3.5

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: c87c74bfccdb5ffe347fba7099a9f17855e1c42446b1edd0d013dbfa08fe5c67
4
- data.tar.gz: b18e8124ded52ecc49a7d43f00da55ff902068f3b1593d195aaecb95e042346f
3
+ metadata.gz: 5eb69fb3fdaed9855a8fa7f791aecf11332bc08dbf5415237e792b48debaf00a
4
+ data.tar.gz: 15926b8c8af6b74f69ce4d579909fc9059a56b07cdd9fbe6d6007a375caf38c4
5
5
  SHA512:
6
- metadata.gz: 0e4714a86a42c8270a6ec66a8b7d50bc21f54ea9d0aebb8cbf5424fac2af621de1ab8fa79d8b51cdc92954b615e8c66dd55e499593dec4861a65052b6c7eacab
7
- data.tar.gz: 80f36f9bea2094a8a13b8bffea1b8b3c3f62b67bfefb44a540ecdc96b479dc50366f7ca182f5f601387f31e8dc44cebf6c9c60c0f8761dfa530ad27aca9e6419
6
+ metadata.gz: ea326cf19e80f7fb403e8d2fa32b5ec8d7383538cde6d8ca2062e01ffbd3ffd8ffa0db116215dd16f70134ade1b759458e8c35ca46ba3224b56ec5f7810757d3
7
+ data.tar.gz: 1c46e6d13a3c0d7c77313f5e2c8a8cbf3bf3a6cc250dc09e08f806a220c2b8fb1dc276f99c5db22f3210b928f01769893265d95d73d6ccb32ea509da9d507404
@@ -150,7 +150,7 @@ module MjmlRb
150
150
  ordered_keys = %w[title src alt style width border]
151
151
  rendered = ordered_keys.filter_map do |key|
152
152
  next unless attrs.key?(key)
153
- next if key != "alt" && (attrs[key].nil? || attrs[key].to_s.empty?)
153
+ next if attrs[key].nil?
154
154
 
155
155
  %(#{key}="#{escape_attr(attrs[key].to_s)}")
156
156
  end
@@ -360,15 +360,15 @@ module MjmlRb
360
360
  %(<tr#{tr_class}>#{cells}</tr>)
361
361
  end
362
362
 
363
- # Build an <img> tag where alt is always rendered (even as alt="")
363
+ # Build an <img> tag nil attributes are omitted, empty strings preserved.
364
364
  def build_img_tag(alt:, title:, src:, style:, width:, sizes:, srcset:)
365
365
  parts = [%( alt="#{escape_attr(alt.to_s)}")]
366
- parts << %( title="#{escape_attr(title)}") unless title.nil? || title.to_s.empty?
367
- parts << %( src="#{escape_attr(src)}") unless src.nil? || src.to_s.empty?
366
+ parts << %( title="#{escape_attr(title)}") unless title.nil?
367
+ parts << %( src="#{escape_attr(src)}") unless src.nil?
368
368
  parts << %( style="#{style}") unless style.nil? || style.empty?
369
- parts << %( width="#{escape_attr(width)}") unless width.nil? || width.to_s.empty?
370
- parts << %( sizes="#{escape_attr(sizes)}") unless sizes.nil? || sizes.to_s.empty?
371
- parts << %( srcset="#{escape_attr(srcset)}") unless srcset.nil? || srcset.to_s.empty?
369
+ parts << %( width="#{escape_attr(width)}") unless width.nil?
370
+ parts << %( sizes="#{escape_attr(sizes)}") unless sizes.nil?
371
+ parts << %( srcset="#{escape_attr(srcset)}") unless srcset.nil?
372
372
  "<img#{parts.join} />"
373
373
  end
374
374
  end
@@ -830,16 +830,13 @@ module MjmlRb
830
830
  CGI.escapeHTML(value.to_s)
831
831
  end
832
832
 
833
- # HTML attributes that are meaningful even when empty.
834
- # `alt=""` signals a decorative image to browsers, suppressing the
835
- # broken-image placeholder icon.
836
- KEEP_WHEN_EMPTY = Set.new(%w[alt]).freeze
837
-
833
+ # Match npm MJML behaviour: omit only nil/undefined attributes.
834
+ # lodash `omitBy(attributes, isNil)` keeps empty strings, so we do the same.
835
+ # This preserves semantically meaningful empty values like `alt=""`.
838
836
  def html_attrs(hash)
839
837
  attrs = hash.each_with_object([]) do |(key, value), memo|
840
- if value.nil? || value.to_s.empty?
841
- next unless KEEP_WHEN_EMPTY.include?(key) && !value.nil?
842
- end
838
+ next if value.nil?
839
+
843
840
  memo << %(#{key}="#{escape_attr(value)}")
844
841
  end
845
842
  return "" if attrs.empty?
@@ -1,3 +1,3 @@
1
1
  module MjmlRb
2
- VERSION = "0.3.4".freeze
2
+ VERSION = "0.3.5".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Andriichuk