Class: WebFunction::Documentation

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

Instance Method Summary collapse

Constructor Details

#initialize(package) ⇒ Documentation



5
6
7
# File 'lib/web_function/documentation.rb', line 5

def initialize(package)
  @package = package
end

Instance Method Details

#generateObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/web_function/documentation.rb', line 9

def generate
  buffer = ""

  buffer << @package.docs.strip
  buffer << "\n\n"
  @package.endpoints.each do |endpoint|
    arguments = endpoint.arguments
    buffer << endpoint.docs.strip
    buffer << "\n\n"
    buffer << "Signature:"
    buffer << "\n"
    buffer << "```"
    buffer << "\n"
    buffer << endpoint.name
    buffer << " { "
    buffer << arguments.map { |a| "#{a.name}: #{a.type}" }.join(", ")
    buffer << " } -> ("
    buffer << endpoint.returns.join(" | ")
    buffer << ")"
    buffer << "\n"
    buffer << "```"
    buffer << "\n\n"
    buffer << "Arguments:"
    buffer << "\n"
    arguments.each do |argument|
      buffer << "  - "
      buffer << "#{argument.name} (#{argument.type}): "
      if argument.flags.include?("required")
        buffer << "**Required.** "
      else
        buffer << "**Optional.** "
      end
      buffer << argument.docs.strip
      buffer << "\n"
    end
    buffer << "\n"
  end

  buffer
end