Class: Nexmo::Markdown::TabFilter

Inherits:
Banzai::Filter
  • Object
show all
Includes:
Concerns::PrismCodeSnippet
Defined in:
lib/nexmo_markdown_renderer/filters/tab_filter.rb

Instance Method Summary collapse

Methods included from Concerns::PrismCodeSnippet

#code_language_to_prism, #code_snippet_body, #prism_css_classes

Instance Method Details

#call(input) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/nexmo_markdown_renderer/filters/tab_filter.rb', line 6

def call(input)
  input.gsub(/^(\s*)```tabbed_(examples|content|folder)(.+?)```/m) do |_s|
    @indentation = $1
    @mode = $2
    @config = YAML.safe_load($3)

    if tabbed_folder?
      raise "#{@config['source']} is not a directory" unless File.directory? "#{@config['source']}"

      @tabbed_config = YAML.safe_load(File.read("#{@config['source']}/.config.yml"))
      @path = @config['source']
      validate_folder_config
    else
      validate_config
    end
    html
  end
end