Module: MJML

Extended by:
Dry::Configurable
Defined in:
lib/mjml.rb,
lib/mjml/logger.rb,
lib/mjml/parser.rb,
lib/mjml/feature.rb,
lib/mjml/railtie.rb,
lib/mjml/version.rb,
lib/mjml/rails/template_handler.rb

Overview

MJML library for ruby

Defined Under Namespace

Modules: Rails Classes: Feature, Logger, Parser, Railtie

Constant Summary collapse

MIME_TYPE =

Constants

'text/mjml'.freeze
EXTENSION =
'.mjml'.freeze
VERSION_REGEX =
/^\d\.\d\.\d/i
VERSION =
'0.3.0'.freeze

Class Method Summary collapse

Class Method Details

.executable_versionObject



38
39
40
# File 'lib/mjml.rb', line 38

def self.executable_version
  @executable_version ||= extract_executable_version
end

.extract_executable_versionObject



42
43
44
45
# File 'lib/mjml.rb', line 42

def self.extract_executable_version
  ver, _status = Open3.capture2(config.bin_path, '-V')
  (ver =~ VERSION_REGEX).nil? ? nil : ver
end

.find_executableObject



32
33
34
35
36
# File 'lib/mjml.rb', line 32

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 bash -c "which mjml"`.strip
end

.loggerObject



47
48
49
# File 'lib/mjml.rb', line 47

def self.logger
  config.logger
end

.setup!Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/mjml.rb', line 21

def self.setup!
  # Init config
  configure do |config|
    config.bin_path = find_executable
    config.debug = nil
    config.logger = Logger.setup!(STDOUT)
    config.minify_output = false
    config.validation_level = :skip
  end
end