Class: Jekyll::ScalaFiddle::OptionsParser

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-scalafiddle.rb

Constant Summary collapse

OPTIONS_SYNTAX =
%r!([^\s]+)\s*=\s*['"]+([^'"]+)['"]+!
ALLOWED_FLAGS =
%w(
  autorun
).freeze
ALLOWED_ATTRIBUTES =
%w(
  template
  prefix
  dependency
  scalaversion
  selector
  minheight
  layout
  theme
).freeze

Class Method Summary collapse

Class Method Details

.parse(raw_options) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/jekyll-scalafiddle.rb', line 20

def parse(raw_options)
  options = {
      :attributes => {},
      :filters => {},
      :flags => {}
  }
  raw_options.scan(OPTIONS_SYNTAX).each do |key, value|
    if ALLOWED_ATTRIBUTES.include?(key)
      options[:attributes][key.to_sym] = value
    else
      options[:filters][key] = value
    end
  end
  ALLOWED_FLAGS.each do |key|
    options[:flags][key.to_sym] = true if raw_options.include?(key)
  end
  options
end