Class: Nexmo::Markdown::CodeSnippetListFilter

Inherits:
Banzai::Filter
  • Object
show all
Defined in:
lib/nexmo_markdown_renderer/filters/code_snippet_list_filter.rb

Instance Method Summary collapse

Instance Method Details

#call(input) ⇒ Object



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

def call(input)
  input.gsub(/```code_snippet_list(.+?)```/m) do |_s|
    config = YAML.safe_load($1)
    @product = config['product']
    @blocks = Nexmo::Markdown::CodeSnippet.by_product(@product)
    
    # Top level blocks come before subfolder
    @blocks.sort_by! do |b|
      sort_array = []
      sort_array << (b.category ? 1 : 0)
      sort_array << b.navigation_weight
      sort_array
    end
    
    erb = File.read("#{GEM_ROOT}/lib/nexmo_markdown_renderer/views/code_snippets/list/plain.html.erb")
    html = ERB.new(erb).result(binding)
    "FREEZESTART#{Base64.urlsafe_encode64(html)}FREEZEEND"
  end
end