Module: MJML

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

Overview

MJML library for ruby

Defined Under Namespace

Classes: Logger, Parser, Railtie

Constant Summary collapse

MIME_TYPE =

Constants

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

Class Method Summary collapse

Class Method Details

.choose_loggerObject



36
37
38
39
40
41
42
43
# File 'lib/mjml.rb', line 36

def self.choose_logger
  if defined?(Rails)
    Rails.logger
  else
    require 'mjml/logger'
    MJML::Logger.setup!(STDOUT)
  end
end

.executable_versionObject



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

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

.find_executableObject



25
26
27
28
29
# File 'lib/mjml.rb', line 25

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



45
46
47
# File 'lib/mjml.rb', line 45

def self.logger
  config.logger
end

.setup!Object



16
17
18
19
20
21
22
23
# File 'lib/mjml.rb', line 16

def self.setup!
  # Init config
  configure do |config|
    config.bin_path = find_executable
    config.logger = choose_logger
    config.debug = false
  end
end