mjml-ruby 0.3.0 → 0.3.1
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 +4 -4
- data/lib/mjml/parser.rb +40 -13
- data/lib/mjml/version.rb +1 -1
- metadata +27 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ba7fc3cc0aabe383a5e0bc9ab26d0db578c6be4
|
4
|
+
data.tar.gz: 5abe4f8865c359ca7d48b8358a2d8e00072821c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2e18a0b5b5c60a54852298608f526df2e33bf1b2f353367ce579f79b2294624092bc7c51484a0f674d92d5d8d8a6a21b3c32fbc51ecaadde6c4f130b1a65580
|
7
|
+
data.tar.gz: b986c40bb3e890375ddcbaa62d6d5a745b127635b0d19cc19dbb7329a6315a2ca0ed2073506cd58fe774395f3f571b82321feb7141f7de274659799a6eb6deb0
|
data/lib/mjml/parser.rb
CHANGED
@@ -15,25 +15,27 @@ module MJML
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def call(template)
|
18
|
-
|
18
|
+
@template = template
|
19
|
+
exec!
|
19
20
|
rescue InvalidTemplate
|
20
21
|
nil
|
21
22
|
end
|
22
23
|
|
23
24
|
def call!(template)
|
24
|
-
|
25
|
+
@template = template
|
26
|
+
exec!
|
25
27
|
end
|
26
28
|
|
27
29
|
private
|
28
30
|
|
29
|
-
def exec!
|
30
|
-
MJML.logger.debug("Template:\n #{template}")
|
31
|
-
raise InvalidTemplate if template.empty?
|
31
|
+
def exec!
|
32
|
+
MJML.logger.debug("Template:\n #{@template}")
|
33
|
+
raise InvalidTemplate if @template.empty?
|
32
34
|
|
33
|
-
MJML.logger.debug("Partial: #{partial?
|
34
|
-
return template if partial?
|
35
|
+
MJML.logger.debug("Partial: #{partial?}")
|
36
|
+
return @template if partial?
|
35
37
|
|
36
|
-
out, err
|
38
|
+
out, err = should_get_outpout_from_file? ? output_from_file : output_from_memory
|
37
39
|
parsed = parse_output(out)
|
38
40
|
|
39
41
|
MJML.logger.debug("Output:\n #{parsed[:output]}")
|
@@ -44,16 +46,24 @@ module MJML
|
|
44
46
|
parsed[:output]
|
45
47
|
end
|
46
48
|
|
47
|
-
def partial?
|
48
|
-
(template =~ ROOT_TAGS_REGEX).nil?
|
49
|
+
def partial?
|
50
|
+
(@template =~ ROOT_TAGS_REGEX).nil?
|
49
51
|
end
|
50
52
|
|
51
53
|
def mjml_bin
|
52
54
|
MJML.config.bin_path
|
53
55
|
end
|
54
56
|
|
55
|
-
def cmd
|
56
|
-
"#{mjml_bin} #{minify_output} #{validation_level}
|
57
|
+
def cmd(file_path = nil)
|
58
|
+
"#{mjml_bin} #{minify_output} #{validation_level} #{cmd_options}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def cmd_options
|
62
|
+
if should_get_outpout_from_file?
|
63
|
+
"-i -o #{@temp_file.path}"
|
64
|
+
else
|
65
|
+
"-is"
|
66
|
+
end
|
57
67
|
end
|
58
68
|
|
59
69
|
def minify_output
|
@@ -64,11 +74,28 @@ module MJML
|
|
64
74
|
"--level=#{MJML.config.validation_level}" if MJML::Feature.available?(:validation_level)
|
65
75
|
end
|
66
76
|
|
77
|
+
def output_from_file
|
78
|
+
@temp_file = Tempfile.new("mjml-template")
|
79
|
+
_out, err, _sts = Open3.capture3(cmd, stdin_data: @template)
|
80
|
+
@temp_file.rewind
|
81
|
+
@temp_file.unlink
|
82
|
+
return @temp_file.read, err
|
83
|
+
end
|
84
|
+
|
85
|
+
def output_from_memory
|
86
|
+
out, err, _sts = Open3.capture3(cmd, stdin_data: @template)
|
87
|
+
return out, err
|
88
|
+
end
|
89
|
+
|
90
|
+
def should_get_outpout_from_file?
|
91
|
+
@template.size > 20_000
|
92
|
+
end
|
93
|
+
|
67
94
|
def parse_output(out)
|
68
95
|
warnings = []
|
69
96
|
output = []
|
70
97
|
|
71
|
-
out.lines.each do |l|
|
98
|
+
out.lines.each do |l|
|
72
99
|
if l.strip.start_with?('Line')
|
73
100
|
warnings << l
|
74
101
|
else
|
data/lib/mjml/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mjml-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mykola Basov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-configurable
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.1'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.1.3
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: '0.1'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.1.3
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,80 +50,80 @@ dependencies:
|
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: 5.9
|
53
|
+
version: '5.9'
|
48
54
|
- - ">="
|
49
55
|
- !ruby/object:Gem::Version
|
50
|
-
version: 5.0
|
56
|
+
version: '5.0'
|
51
57
|
type: :development
|
52
58
|
prerelease: false
|
53
59
|
version_requirements: !ruby/object:Gem::Requirement
|
54
60
|
requirements:
|
55
61
|
- - "~>"
|
56
62
|
- !ruby/object:Gem::Version
|
57
|
-
version: 5.9
|
63
|
+
version: '5.9'
|
58
64
|
- - ">="
|
59
65
|
- !ruby/object:Gem::Version
|
60
|
-
version: 5.0
|
66
|
+
version: '5.0'
|
61
67
|
- !ruby/object:Gem::Dependency
|
62
68
|
name: tilt
|
63
69
|
requirement: !ruby/object:Gem::Requirement
|
64
70
|
requirements:
|
65
71
|
- - "~>"
|
66
72
|
- !ruby/object:Gem::Version
|
67
|
-
version: 2.0
|
73
|
+
version: '2.0'
|
68
74
|
- - ">="
|
69
75
|
- !ruby/object:Gem::Version
|
70
|
-
version: 2.0
|
76
|
+
version: '2.0'
|
71
77
|
type: :development
|
72
78
|
prerelease: false
|
73
79
|
version_requirements: !ruby/object:Gem::Requirement
|
74
80
|
requirements:
|
75
81
|
- - "~>"
|
76
82
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.0
|
83
|
+
version: '2.0'
|
78
84
|
- - ">="
|
79
85
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.0
|
86
|
+
version: '2.0'
|
81
87
|
- !ruby/object:Gem::Dependency
|
82
88
|
name: sprockets
|
83
89
|
requirement: !ruby/object:Gem::Requirement
|
84
90
|
requirements:
|
85
91
|
- - "~>"
|
86
92
|
- !ruby/object:Gem::Version
|
87
|
-
version: 3.7
|
93
|
+
version: '3.7'
|
88
94
|
- - ">="
|
89
95
|
- !ruby/object:Gem::Version
|
90
|
-
version: 3.0
|
96
|
+
version: '3.0'
|
91
97
|
type: :development
|
92
98
|
prerelease: false
|
93
99
|
version_requirements: !ruby/object:Gem::Requirement
|
94
100
|
requirements:
|
95
101
|
- - "~>"
|
96
102
|
- !ruby/object:Gem::Version
|
97
|
-
version: 3.7
|
103
|
+
version: '3.7'
|
98
104
|
- - ">="
|
99
105
|
- !ruby/object:Gem::Version
|
100
|
-
version: 3.0
|
106
|
+
version: '3.0'
|
101
107
|
- !ruby/object:Gem::Dependency
|
102
108
|
name: byebug
|
103
109
|
requirement: !ruby/object:Gem::Requirement
|
104
110
|
requirements:
|
105
111
|
- - "~>"
|
106
112
|
- !ruby/object:Gem::Version
|
107
|
-
version: 9.0
|
113
|
+
version: '9.0'
|
108
114
|
- - ">="
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version: 9.0
|
116
|
+
version: '9.0'
|
111
117
|
type: :development
|
112
118
|
prerelease: false
|
113
119
|
version_requirements: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
121
|
- - "~>"
|
116
122
|
- !ruby/object:Gem::Version
|
117
|
-
version: 9.0
|
123
|
+
version: '9.0'
|
118
124
|
- - ">="
|
119
125
|
- !ruby/object:Gem::Version
|
120
|
-
version: 9.0
|
126
|
+
version: '9.0'
|
121
127
|
description:
|
122
128
|
email:
|
123
129
|
- kolybasov@gmail.com
|
@@ -154,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
160
|
version: '0'
|
155
161
|
requirements: []
|
156
162
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.6.
|
163
|
+
rubygems_version: 2.6.11
|
158
164
|
signing_key:
|
159
165
|
specification_version: 4
|
160
166
|
summary: MJML parser and template engine for Ruby
|