class Nexmo::Markdown::CodeSnippetListFilter

Public Instance Methods

call(input) click to toggle source
# 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