module Jekyll::Diagrams::Utils

Public Instance Methods

config_for(context, name) click to toggle source

@param context Liquid::Template

# File lib/jekyll-diagrams/utils.rb, line 20
def config_for(context, name)
  configuration(context).dig(Diagrams.config_name, name) || {}
end
configuration(context) click to toggle source

Return configuration of Jekyll Diagrams

@param context Liquid::Template @return Configuration

# File lib/jekyll-diagrams/utils.rb, line 12
def configuration(context)
  site_config = context.registers[:site].config
  page_config = context.registers[:page]

  site_config.merge(page_config)
end
error_mode(context) click to toggle source

Return error mode in user configuration

@param context Liquid::Template

# File lib/jekyll-diagrams/utils.rb, line 27
def error_mode(context)
  key = 'error_mode'
  config = configuration(context)

  liquid_mode = config.dig('liquid', key)
  custom_mode = config.dig(Diagrams.config_name, key)

  (custom_mode || liquid_mode || Diagrams.default_error_mode).to_sym
end
handle_error(context, error) click to toggle source
# File lib/jekyll-diagrams/utils.rb, line 37
def handle_error(context, error)
  topic = Diagrams.logger_topic
  mode = error_mode(context)

  case mode
  when :lax
    ''
  when :warn
    Jekyll.logger.warn topic, error
    error
  when :strict
    Jekyll.logger.abort_with topic, error
  else
    raise Errors::UnkownErrorModeError, mode
  end
end
normalized_attrs(attrs, prefix:, sep: '=') click to toggle source
# File lib/jekyll-diagrams/utils.rb, line 62
def normalized_attrs(attrs, prefix:, sep: '=')
  attrs =
    case attrs
    when String
      attrs
    when Array
      attrs.join(prefix)
    when Hash
      attrs.map { |k, v| "#{k}#{sep}#{v}" }.join(prefix)
    end

  "#{prefix}#{attrs}"
end
run_jar(jar) click to toggle source
# File lib/jekyll-diagrams/utils.rb, line 58
def run_jar(jar)
  "java -Djava.awt.headless=true -jar #{jar} "
end
vendor_path(file = '') click to toggle source
# File lib/jekyll-diagrams/utils.rb, line 54
def vendor_path(file = '')
  File.join(File.expand_path('../../vendor', __dir__), file)
end
wrap_class(content, class_names) click to toggle source
# File lib/jekyll-diagrams/utils.rb, line 76
      def wrap_class(content, class_names)
        <<~CONTENT
          <div class='#{Diagrams.config_name} diagrams #{class_names}'>
            #{content}
          </div>
        CONTENT
      end