fx_awesome_mails 0.5.2 → 0.5.6
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 150486384ec88d98e3e3db07762c6aa9dd5c66ddef2115e762aeed824f80a529
|
|
4
|
+
data.tar.gz: f7dfb71da172e702144ba4f6e9bc30ef48199ab8f1206b2846f15a0a6b4160ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e52480877c2739a99d262f384f5ce2c96c3cd114220752d474f522d94318746cfa2fa65cf2aa4b28831da3588d346c959da38e00ef979d7c8c330ebac83a54c2
|
|
7
|
+
data.tar.gz: 78f2d6a1f91f4901c6c2bb62e2088afa357480e8a98dd66be692fa7caedb8c80588b6eff511fcc472a99eacfd6d9486712e1eeb25b4c9fb0d7cb3207bb70f68e
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module FXAwesomeMails
|
|
2
|
+
module Refinements
|
|
3
|
+
refine String do
|
|
4
|
+
def to_css_hash
|
|
5
|
+
Hash[split(';').map { _1.split(':').map(&:strip) }]
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def merge_css_options(second, key)
|
|
9
|
+
return self&.strip if second.blank?
|
|
10
|
+
return second&.strip if self.blank?
|
|
11
|
+
|
|
12
|
+
case key
|
|
13
|
+
when :style
|
|
14
|
+
return self.strip.to_css_hash.deep_merge_v2(second.strip.to_css_hash).map {|k,v| [k,v].join(':') }.join(';')
|
|
15
|
+
when :class
|
|
16
|
+
self.strip.split(' ').union(second.strip.split(' ')).join(' ')
|
|
17
|
+
else
|
|
18
|
+
return ""
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
refine Hash do
|
|
24
|
+
def deep_merge_v2(second)
|
|
25
|
+
merger = proc { |_, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
|
|
26
|
+
merge(second.to_h, &merger)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def merge_email_options(second)
|
|
30
|
+
merger = proc { |k, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : [:style, :class].include?(k) ? v1.merge_css_options(v2, k) : v2}
|
|
31
|
+
merge(second.to_h, &merger)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
require 'fx_awesome_mails/
|
|
1
|
+
require 'fx_awesome_mails/refinements'
|
|
2
2
|
module FXAwesomeMails
|
|
3
3
|
module EmailHelpers
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Hash.include FXAwesomeMails::CoreExtensions::Hash::Merging
|
|
4
|
+
|
|
5
|
+
using FXAwesomeMails::Refinements
|
|
7
6
|
|
|
8
7
|
def preheader(text)
|
|
9
8
|
"<div style='display: none; max-height: 0px; overflow: hidden;'>
|
|
@@ -184,7 +183,7 @@ module FXAwesomeMails
|
|
|
184
183
|
|
|
185
184
|
def self.vertical_grid(_capture_helper, **options, &block)
|
|
186
185
|
options = { valign: 'top', style: "text-align: left" }.merge_email_options(options)
|
|
187
|
-
_capture_helper.content_tag('th', valign: "#{options[:valign]}", style: "#{options[:style]}", class: "
|
|
186
|
+
_capture_helper.content_tag('th', valign: "#{options[:valign]}", style: "#{options[:style]}", class: "vertical-grid #{options[:class]}") do
|
|
188
187
|
"<table cellpadding='0' cellspacing='0' border='0' width='100%' style='min-width:100%' role='presentation'>
|
|
189
188
|
<tbody>
|
|
190
189
|
#{_capture_helper.capture(VerticalGrid.new(_capture_helper), &block)}
|
|
@@ -244,11 +243,8 @@ module FXAwesomeMails
|
|
|
244
243
|
"#{Gutter.new(parent).vertical(...)}".html_safe
|
|
245
244
|
end
|
|
246
245
|
|
|
247
|
-
def text(
|
|
248
|
-
|
|
249
|
-
content_tag('th', valign: "#{options[:valign]}", style: "#{options[:style]}", class: "text-container #{options[:class]}") do
|
|
250
|
-
block_given? ? capture(&block) : text
|
|
251
|
-
end
|
|
246
|
+
def text(...)
|
|
247
|
+
"#{Text.new(parent).text(...)}".html_safe
|
|
252
248
|
end
|
|
253
249
|
|
|
254
250
|
def image(...)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fx_awesome_mails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Felix Gebhard
|
|
@@ -40,8 +40,8 @@ files:
|
|
|
40
40
|
- README.md
|
|
41
41
|
- Rakefile
|
|
42
42
|
- lib/fx_awesome_mails.rb
|
|
43
|
-
- lib/fx_awesome_mails/core_extensions.rb
|
|
44
43
|
- lib/fx_awesome_mails/railtie.rb
|
|
44
|
+
- lib/fx_awesome_mails/refinements.rb
|
|
45
45
|
- lib/fx_awesome_mails/version.rb
|
|
46
46
|
- lib/fx_awesome_mails/view_helpers.rb
|
|
47
47
|
- lib/tasks/fx_awesome_mails_tasks.rake
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
module FXAwesomeMails
|
|
2
|
-
module CoreExtensions
|
|
3
|
-
module Hash
|
|
4
|
-
module Merging
|
|
5
|
-
def deep_merge_v2(second)
|
|
6
|
-
merger = proc { |_, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
|
|
7
|
-
merge(second.to_h, &merger)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def merge_email_options(second)
|
|
11
|
-
merger = proc { |k, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : [:style, :class].include?(k) ? v1.merge_css_options(v2, k) : v2}
|
|
12
|
-
merge(second.to_h, &merger)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
module String
|
|
18
|
-
module Merging
|
|
19
|
-
def merge_css_options(second, key)
|
|
20
|
-
return self&.strip if second.blank?
|
|
21
|
-
return second&.strip if self.blank?
|
|
22
|
-
|
|
23
|
-
case key
|
|
24
|
-
when :style
|
|
25
|
-
return self.strip.to_css_hash.deep_merge_v2(second.strip.to_css_hash).map {|k,v| [k,v].join(':') }.join(';')
|
|
26
|
-
when :class
|
|
27
|
-
self.strip.split(' ').union(second.strip.split(' ')).join(' ')
|
|
28
|
-
else
|
|
29
|
-
return ""
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def to_css_hash
|
|
34
|
-
Hash[self.split(';').map { _1.split(':').map(&:strip) }]
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|