mjml-ruby 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mjml/parser.rb +40 -13
  3. data/lib/mjml/version.rb +1 -1
  4. metadata +27 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9553ab9e944060cd775079a86da250cc18f98bd3
4
- data.tar.gz: 96f986df41ab14afeaeff452735977e11bc98322
3
+ metadata.gz: 9ba7fc3cc0aabe383a5e0bc9ab26d0db578c6be4
4
+ data.tar.gz: 5abe4f8865c359ca7d48b8358a2d8e00072821c7
5
5
  SHA512:
6
- metadata.gz: 86bfb367a7237eb0487aa14abdde30564af54c4ff320d15c5b1b27b98f5414f9976ce7ec46b3e20a0c4d8e07ad40d0b067309f9df099c338ce7e782c5ca9aee9
7
- data.tar.gz: 2077acd4e9ec468ee1367e9e17f7dc73f4a4342bcf8bbce8621796873b80b34b49dd6d69de640099da6fee69c7a40fe4da512678ef8c00ecccded2090e0648c4
6
+ metadata.gz: e2e18a0b5b5c60a54852298608f526df2e33bf1b2f353367ce579f79b2294624092bc7c51484a0f674d92d5d8d8a6a21b3c32fbc51ecaadde6c4f130b1a65580
7
+ data.tar.gz: b986c40bb3e890375ddcbaa62d6d5a745b127635b0d19cc19dbb7329a6315a2ca0ed2073506cd58fe774395f3f571b82321feb7141f7de274659799a6eb6deb0
@@ -15,25 +15,27 @@ module MJML
15
15
  end
16
16
 
17
17
  def call(template)
18
- exec!(template)
18
+ @template = template
19
+ exec!
19
20
  rescue InvalidTemplate
20
21
  nil
21
22
  end
22
23
 
23
24
  def call!(template)
24
- exec!(template)
25
+ @template = template
26
+ exec!
25
27
  end
26
28
 
27
29
  private
28
30
 
29
- def exec!(template)
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?(template)}")
34
- return template if partial?(template)
35
+ MJML.logger.debug("Partial: #{partial?}")
36
+ return @template if partial?
35
37
 
36
- out, err, _sts = Open3.capture3(cmd, stdin_data: template)
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?(template)
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} -is"
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
@@ -1,3 +1,3 @@
1
1
  module MJML
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.3.1'.freeze
3
3
  end
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.0
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: 2016-10-30 00:00:00.000000000 Z
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.3.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.3.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.0
53
+ version: '5.9'
48
54
  - - ">="
49
55
  - !ruby/object:Gem::Version
50
- version: 5.0.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.0
63
+ version: '5.9'
58
64
  - - ">="
59
65
  - !ruby/object:Gem::Version
60
- version: 5.0.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.0
73
+ version: '2.0'
68
74
  - - ">="
69
75
  - !ruby/object:Gem::Version
70
- version: 2.0.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.0
83
+ version: '2.0'
78
84
  - - ">="
79
85
  - !ruby/object:Gem::Version
80
- version: 2.0.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.0
93
+ version: '3.7'
88
94
  - - ">="
89
95
  - !ruby/object:Gem::Version
90
- version: 3.0.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.0
103
+ version: '3.7'
98
104
  - - ">="
99
105
  - !ruby/object:Gem::Version
100
- version: 3.0.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.0
113
+ version: '9.0'
108
114
  - - ">="
109
115
  - !ruby/object:Gem::Version
110
- version: 9.0.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.0
123
+ version: '9.0'
118
124
  - - ">="
119
125
  - !ruby/object:Gem::Version
120
- version: 9.0.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.7
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