fx_awesome_mails 0.5.4 → 0.5.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: 182d15e812f86ce005073951b8a5a32ac647021bbe101bd0dd60def54db69982
4
- data.tar.gz: 8e66c5acd82735c5cb52b26997dc3b6fa4a347e56651f8b787d028c3bfcb5d53
3
+ metadata.gz: bd2b4740a0862d162ca275c62ebaa8796a72570f6f7efa4c990ffdc0c70eb4d2
4
+ data.tar.gz: 3cbd818cad4ef2c7f46467e50e6eec5578cf333d001215c9caa78f9cbf09ab97
5
5
  SHA512:
6
- metadata.gz: 16c3566479da7798202aa7097063e99fb8d050c17633ceee5714486a48a3134e269fc33a3fc21283aa9a0704340b74e7b3c6dd217f3dde71e7ea9a74b3d5779c
7
- data.tar.gz: 585762552a960b0383c56613a7b2fea161d4613b05f5e369ab8d0e23d5c3ced183ba2edc2a68d7830c799bf8a74e3f1bb8fe167120f5061e2d4c956c36159cae
6
+ metadata.gz: b164d6adbd4f1a04bc8ce92f1f35a400cf8063d4fb324b2c354c46a1ee93593200611e2bdc4107f1af6ba34daeef973e9820b5aa54109203a83b3f1668837fc5
7
+ data.tar.gz: 65885c7bccebce3a048bb05a311ed929f03082bbb5c9ffec1ca14e459a702dfc992969e11c568be86fc38cf4c20d06005230ee4b5a51daebce8ebb4e59ccc5ff
@@ -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,3 +1,3 @@
1
1
  module FXAwesomeMails
2
- VERSION = '0.5.4'
2
+ VERSION = '0.5.5'
3
3
  end
@@ -1,9 +1,8 @@
1
- require 'fx_awesome_mails/core_extensions'
1
+ require 'fx_awesome_mails/refinements'
2
2
  module FXAwesomeMails
3
3
  module EmailHelpers
4
4
 
5
- Hash.include FXAwesomeMails::CoreExtensions::Hash::Merging
6
- String.include FXAwesomeMails::CoreExtensions::String::Merging
5
+ using FXAwesomeMails::Refinements
7
6
 
8
7
  def preheader(text)
9
8
  "<div style='display: none; max-height: 0px; overflow: hidden;'>
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
4
+ version: 0.5.5
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