module Mjml
Constants
- VERSION
Version number no longer matches MJML.io version
Attributes
logger[W]
Public Class Methods
bin_path_from(package_manager)
click to toggle source
# File lib/mjml.rb, line 88 def self.bin_path_from(package_manager) stdout, _, status = Open3.capture3("#{package_manager} bin") return unless status.success? stdout.chomp rescue Errno::ENOENT # package manager is not installed nil end
check_for_custom_mjml_binary()
click to toggle source
# File lib/mjml.rb, line 53 def self.check_for_custom_mjml_binary if const_defined?('BIN') && Mjml::BIN.present? logger.warn('Setting `Mjml::BIN` is deprecated and will be removed in a future version! Please use `Mjml.mjml_binary=` instead.') self.mjml_binary = Mjml::BIN remove_const 'BIN' end return unless mjml_binary.present? return mjml_binary if check_version(mjml_binary) raise "MJML.mjml_binary is set to '#{mjml_binary}' but MJML-Rails could not validate that it is a valid MJML binary. Please check your configuration." end
check_for_global_mjml_binary()
click to toggle source
# File lib/mjml.rb, line 83 def self.check_for_global_mjml_binary mjml_bin = `which mjml`.chomp return mjml_bin if mjml_bin.present? && check_version(mjml_bin) end
check_for_npm_mjml_binary()
click to toggle source
# File lib/mjml.rb, line 75 def self.check_for_npm_mjml_binary npm_bin = `which npm`.chomp return unless npm_bin.present? && (installer_path = bin_path_from(npm_bin)).present? mjml_bin = File.join(installer_path, 'mjml') return mjml_bin if check_version(mjml_bin) end
check_for_yarn_mjml_binary()
click to toggle source
# File lib/mjml.rb, line 67 def self.check_for_yarn_mjml_binary yarn_bin = `which yarn`.chomp return unless yarn_bin.present? mjml_bin = "#{yarn_bin} run mjml" return mjml_bin if check_version(mjml_bin) end
check_version(bin)
click to toggle source
# File lib/mjml.rb, line 30 def self.check_version(bin) stdout, _, status = run_mjml('--version', mjml_bin: bin) status.success? && stdout.include?("mjml-core: #{Mjml.mjml_binary_version_supported}") rescue StandardError false end
discover_mjml_bin()
click to toggle source
# File lib/mjml.rb, line 98 def self.discover_mjml_bin logger.warn('`Mjml.discover_mjml_bin` is deprecated and has no effect anymore! Please use `Mjml.mjml_binary=` to set a custom MJML binary.') end
logger()
click to toggle source
# File lib/mjml.rb, line 109 def logger @logger ||= Logger.new($stdout).tap do |log| log.progname = self.name end end
run_mjml(args, mjml_bin: valid_mjml_binary)
click to toggle source
# File lib/mjml.rb, line 37 def self.run_mjml(args, mjml_bin: valid_mjml_binary) Open3.capture3("#{mjml_bin} #{args}") end
setup() { |self| ... }
click to toggle source
# File lib/mjml.rb, line 102 def self.setup yield self if block_given? end
valid_mjml_binary()
click to toggle source
# File lib/mjml.rb, line 41 def self.valid_mjml_binary @@valid_mjml_binary ||= check_for_custom_mjml_binary || check_for_yarn_mjml_binary || check_for_npm_mjml_binary || check_for_global_mjml_binary return @@valid_mjml_binary if @@valid_mjml_binary puts Mjml.mjml_binary_error_string end