Class: Nexmo::Markdown::CodeSnippetFilter

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

Instance Method Summary collapse

Instance Method Details

#application_htmlObject



24
25
26
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 24

def application_html
  @application_html ||= ::Nexmo::Markdown::Filters::CodeSnippet::CreateApplication.new(@config['application']).render
end

#call(input) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 5

def call(input)
  input.gsub(/```single_code_snippet(.+?)```/m) do |_s|
    @config = YAML.safe_load($1)
    @binding = ::Nexmo::Markdown::Filters::CodeSnippet::Binding.new(@config)

    return instructions if @config['code_only']

    "#{prerequisites}#{instructions}#{run}"
  end
end

#import_dependenciesObject



32
33
34
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 32

def import_dependencies
  @import_dependencies ||= ::Nexmo::Markdown::Filters::CodeSnippet::ImportDependencies.new(@config['import_dependencies'], @binding).render
end

#initialize_dependenciesObject



36
37
38
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 36

def initialize_dependencies
  @initialize_dependencies ||= ::Nexmo::Markdown::Filters::CodeSnippet::InitializeDependencies.new(@config['client'], @binding).render
end

#install_dependenciesObject



28
29
30
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 28

def install_dependencies
  @install_dependencies ||= ::Nexmo::Markdown::Filters::CodeSnippet::InstallDependencies.new(@config['dependencies'], @config['version'], @binding).render
end

#instructionsObject



40
41
42
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 40

def instructions
  @instructions ||= ::Nexmo::Markdown::Filters::CodeSnippet::Instructions.new(@config, @binding).render
end

#prerequisitesObject



16
17
18
19
20
21
22
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 16

def prerequisites
  @prerequisites ||= begin
    prereqs = [application_html, install_dependencies, import_dependencies, initialize_dependencies].join.strip
    prereqs = "<h2>#{::I18n.t('.filters.prerequisites')}</h2>#{prereqs}" unless prereqs.empty?
    prereqs
  end
end

#runObject



44
45
46
# File 'lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb', line 44

def run
  @run ||= ::Nexmo::Markdown::Filters::CodeSnippet::Run.new(@config, @binding).render
end