module MJML

MJML library for ruby

Constants

EXTENSION
MIME_TYPE

Constants

VERSION
VERSION_3_REGEX
VERSION_4_REGEX

Public Class Methods

executable_version() click to toggle source
# File lib/mjml.rb, line 43
def self.executable_version
  @executable_version ||= extract_executable_version
end
extract_executable_version() click to toggle source
# File lib/mjml.rb, line 47
def self.extract_executable_version
  ver, _status = Open3.capture2(Config.bin_path, '--version')

  # mjml 3.x outputs version directly:
  #   3.3.5
  # --> just take this as the version

  # mjml 4.x outputs two rows:
  #   mjml-core: 4.0.0
  #   mjml-cli: 4.0.0
  # --> we take the second number as the version, since we call the cli

  case ver.count("\n")
  when 1
    # one line, mjml 3.x
    match = ver.match(VERSION_3_REGEX)
  when 2
    # two lines, might be 4.x
    match = ver.match(VERSION_4_REGEX)
  end

  match.nil? ? nil : match[1]
rescue Errno::ENOENT => _e
  raise BinaryNotFound, "mjml binary not found for path '#{Config.bin_path}'"
end
find_executable() click to toggle source
# File lib/mjml.rb, line 37
def self.find_executable
  local_path = File.expand_path('node_modules/.bin/mjml', Dir.pwd)
  return local_path if File.file?(local_path)
  `/usr/bin/env which mjml`.strip
end
logger() click to toggle source
# File lib/mjml.rb, line 73
def self.logger
  Config.logger
end
setup!() click to toggle source
# File lib/mjml.rb, line 28
def self.setup!
  # Init config
  Config.bin_path = find_executable
  Config.debug = nil
  Config.logger = Logger.setup!(STDOUT)
  Config.minify_output = false
  Config.validation_level = :skip
end