Class: JSONAPIonify::Documentation

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonapionify/documentation.rb

Constant Summary collapse

STRIPPER =
Redcarpet::Markdown.new(Redcarpet::Render::StripDown)
RENDERER =
Redcarpet::Markdown.new(
  Redcarpet::Render::HTML,
  autolink:                     true,
  tables:                       true,
  fenced_code_blocks:           true,
  strikethrough:                true,
  disable_indented_code_blocks: true,
  no_intra_emphasis:            true,
  space_after_headers:          true,
  underline:                    true,
  highlight:                    true,
  quote:                        true
)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api, template: nil) ⇒ Documentation

Returns a new instance of Documentation.



39
40
41
42
43
# File 'lib/jsonapionify/documentation.rb', line 39

def initialize(api, template: nil)
  template ||= File.join(__dir__, 'documentation/template.erb')
  @api     = api
  @erb     = ERB.new File.read(template)
end

Instance Attribute Details

#apiObject (readonly)

Returns the value of attribute api.



37
38
39
# File 'lib/jsonapionify/documentation.rb', line 37

def api
  @api
end

Class Method Details

.onelinify_markdown(string) ⇒ Object



29
30
31
# File 'lib/jsonapionify/documentation.rb', line 29

def self.onelinify_markdown(string)
  strip_markdown(string).gsub(/[\r\n\t]/, ' ').strip
end

.render_markdown(string) ⇒ Object



25
26
27
# File 'lib/jsonapionify/documentation.rb', line 25

def self.render_markdown(string)
  RENDERER.render(string.deindent)
end

.strip_markdown(string) ⇒ Object



33
34
35
# File 'lib/jsonapionify/documentation.rb', line 33

def self.strip_markdown(string)
  STRIPPER.render(string.deindent)
end

Instance Method Details

#resultObject



45
46
47
# File 'lib/jsonapionify/documentation.rb', line 45

def result
  @erb.result(binding)
end