mjml-rails 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23d64fc573617f97b917a44845edb779ac1030e1
4
- data.tar.gz: a60ab96d56360fe8879d95bcc0eb8a2f6d8d24fa
3
+ metadata.gz: 43e20e43c1008a376c9f8bc2f2656223d1b81a48
4
+ data.tar.gz: '0912c1df5e3e95760e823d836a54ea7c130a3966'
5
5
  SHA512:
6
- metadata.gz: 61baeae1c6d18fead584e198f16c98da37461b0bcb67ad484808d53ce9097eeeacc4deedd1839b19ef757668887d51310652bba03a2a740b4a53fb762186ba78
7
- data.tar.gz: cc269072ac345f354d788011a8223002bbb9fac2f86192051951861d8123c2564c8665755ae51bae1a3de51ab3a86acba7e3b31ca345ef9d3fcf61d9a58a56ea
6
+ metadata.gz: 3fd8af4d8a513fa306a6ee49da43f5c4b4b5c8b23a7e7b816057a3180f104e916a638c5d9e3532ae957de8d84c2475be5b5abb7386850d62b7f18316bb4e81ce
7
+ data.tar.gz: 7b0e44992a87b75ab1a33e9ce3fc35246d92fb81e406da5496e46a93f616214d5404a16c7ada7f5f7b48edbf930beae8d06358b793377cab8018e24f4b77cec5
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -273,6 +273,11 @@ If you discover any bugs, feel free to create an issue on GitHub. Please add as
273
273
  * Simon Loffler [github.com/sighmon](https://github.com/sighmon)
274
274
  * Steven Pickles [github.com/thatpixguy](https://github.com/thatpixguy)
275
275
 
276
+ ## Other similar gems
277
+
278
+ * [srghma/mjml-premailer](https://github.com/srghma/mjml-premailer) - supports `/app/views/layouts`
279
+ * [kolybasov/mjml-ruby/](https://github.com/kolybasov/mjml-ruby/)
280
+
276
281
  ## License
277
282
 
278
283
  MIT License. Copyright 2016 Simon Loffler. [sighmon.com](http://sighmon.com)
@@ -5,13 +5,15 @@ require "mjml/railtie"
5
5
  require "rubygems"
6
6
 
7
7
  module Mjml
8
- mattr_accessor :template_language, :raise_render_exception
8
+ mattr_accessor :template_language, :raise_render_exception, :mjml_binary_version_supported, :mjml_binary_error_string
9
9
 
10
10
  @@template_language = :erb
11
11
  @@raise_render_exception = false
12
+ @@mjml_binary_version_supported = "4.0."
13
+ @@mjml_binary_error_string = "Couldn't find the MJML #{Mjml.mjml_binary_version_supported} binary.. have you run $ npm install mjml?"
12
14
 
13
15
  def self.check_version(bin)
14
- IO.popen("#{bin} --version") { |io| io.read.include?('mjml-core: 4.0.') }
16
+ IO.popen("#{bin} --version") { |io| io.read.include?("mjml-core: #{Mjml.mjml_binary_version_supported}") }
15
17
  rescue
16
18
  false
17
19
  end
@@ -26,7 +28,7 @@ module Mjml
26
28
  mjml_bin = File.join(installer_path, 'mjml')
27
29
  return mjml_bin if check_version(mjml_bin)
28
30
 
29
- puts "Couldn't find the MJML binary.. have you run $ npm install mjml?"
31
+ puts Mjml.mjml_binary_error_string
30
32
  nil
31
33
  end
32
34
 
@@ -1,11 +1,14 @@
1
+ require 'open3'
2
+
1
3
  module Mjml
2
4
  class Parser
5
+ class ParseError < StandardError; end
3
6
 
4
7
  # Create new parser
5
8
  #
6
9
  # @param input [String] The string to transform in html
7
10
  def initialize input
8
- raise "Couldn't find the MJML binary.. have you run $ npm install mjml?" unless mjml_bin
11
+ raise Mjml.mjml_binary_error_string unless mjml_bin
9
12
  file = File.open(in_tmp_file, 'w')
10
13
  file.write(input)
11
14
  file.close
@@ -28,8 +31,9 @@ module Mjml
28
31
  # @return [String] The result as string
29
32
  def run
30
33
  command = "#{mjml_bin} -r #{in_tmp_file} -o #{out_tmp_file}"
31
- # puts command
32
- `#{command}`
34
+ _, _, stderr, _ = Open3.popen3(command)
35
+ raise ParseError.new(stderr.read.chomp) unless stderr.eof?
36
+
33
37
  file = File.open(out_tmp_file, 'r')
34
38
  str = file.read
35
39
  file.close
@@ -1,4 +1,4 @@
1
1
  module Mjml
2
2
  # Version number no longer matches MJML.io version
3
- VERSION = "4.0.2"
3
+ VERSION = "4.0.3"
4
4
  end
@@ -38,4 +38,17 @@ describe Mjml::Parser do
38
38
  end
39
39
  end
40
40
  end
41
+
42
+ describe '#run' do
43
+ describe 'when shell command is failed' do
44
+ let(:error) { 'shell error' }
45
+ let(:stderr) { mock('stderr', eof?: false, read: error) }
46
+
47
+ before { Open3.stubs(popen3: [nil, nil, stderr, nil]) }
48
+
49
+ it 'raises exception' do
50
+ -> { parser.run }.must_raise(Mjml::Parser::ParseError, error)
51
+ end
52
+ end
53
+ end
41
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Loffler
@@ -31,7 +31,7 @@ cert_chain:
31
31
  IUdCp7zF7QpeLz6cgerOpdG0NLHQOEPcWqHpt4yM++TieNrYOuJlkkSd11Ypvgsc
32
32
  RRE0kJj2aO7haTBQ7uQl3cTv2c1s4bLu
33
33
  -----END CERTIFICATE-----
34
- date: 2018-04-27 00:00:00.000000000 Z
34
+ date: 2018-05-28 00:00:00.000000000 Z
35
35
  dependencies: []
36
36
  description: Render MJML + ERb template views in Rails
37
37
  email: sighmon@sighmon.com
metadata.gz.sig CHANGED
Binary file