class Jekyll::ScalaFiddle::ScalaFiddleTag

Public Class Methods

new(tag, args, _) click to toggle source
Calls superclass method
# File lib/jekyll-scalafiddle.rb, line 43
def initialize(tag, args, _)
  @args = OptionsParser.parse(args)
  super
end

Public Instance Methods

render(context) click to toggle source
Calls superclass method
# File lib/jekyll-scalafiddle.rb, line 48
      def render(context)
        site = context.registers[:site]
        # run all markdown converters for this content
        converters = site.converters.select { |c| c.matches(".md") }.sort
        content = converters.reduce(super(context)) { |content, converter| converter.convert(content) }
        config = site.config.fetch("scalafiddle", {})
        result = <<HTML
<div #{render_attributes(config)}>#{content}</div>
HTML
        result
      end

Private Instance Methods

render_attributes(config) click to toggle source
# File lib/jekyll-scalafiddle.rb, line 61
def render_attributes(config)
  attributes = {"data-scalafiddle" => ""}

  if @args[:attributes][:template]
    attributes["data-template"] = "'#{@args[:attributes][:template]}'"
  end
  # apply default attributes from config
  if config.key?("dependency")
    attributes["data-dependency"] = "'#{config["dependency"]}'"
  end
  if config.key?("scalaversion")
    attributes["data-scalaversion"] = "'#{config["scalaversion"]}'"
  end
  if config.key?("selector")
    attributes["data-selector"] = "'#{config["selector"]}'"
  end
  if config.key?("theme")
    attributes["data-theme"] = "'#{config["theme"]}'"
  end
  # apply tag attributes
  if @args[:attributes][:dependency]
    attributes["data-dependency"] = "'#{@args[:attributes][:dependency]}'"
  end
  if @args[:attributes][:scalaversion]
    attributes["data-scalaversion"] = "'#{@args[:attributes][:scalaversion]}'"
  end
  if @args[:attributes][:selector]
    attributes["data-selector"] = "'#{@args[:attributes][:selector]}'"
  end
  if @args[:attributes][:prefix]
    attributes["data-prefix"] = "'#{@args[:attributes][:prefix]}'"
  end
  if @args[:attributes][:minheight]
    attributes["data-minheight"] = "'#{@args[:attributes][:minheight]}'"
  end
  if @args[:attributes][:layout]
    attributes["data-layout"] = "'#{@args[:attributes][:layout]}'"
  end
  if @args[:attributes][:theme]
    attributes["data-theme"] = "'#{@args[:attributes][:theme]}'"
  end
  if @args[:flags][:autorun]
    attributes["data-autorun"] = ""
  end
  attrs = ""
  attributes.each {|key, value|
    if value.empty?
      attrs << "#{key} "
    else
      attrs << "#{key}=#{value} "
    end
  }
  attrs.rstrip
end