class CanvasApi::Render

Attributes

api[RW]
api_url[RW]
args[RW]
content[RW]
description[RW]
method[RW]
model[RW]
model_name[RW]
name[RW]
nickname[RW]
notes[RW]
operation[RW]
resource[RW]
resource_api[RW]
resource_name[RW]
summary[RW]
template[RW]

Public Class Methods

new(template, api, resource, resource_api, operation, parameters, content, model) click to toggle source
# File lib/canvas_api/render.rb, line 16
def initialize(template, api, resource, resource_api, operation, parameters, content, model)
  @template = File.read(File.expand_path(template, __dir__))
  if api
    @api         = api
    @name        = @api["path"].gsub("/", "").gsub(".json", "")
    @description = @api["description"]
  end
  if resource
    @resource      = resource
    @resource_name = resource["resourcePath"].gsub("/", "")
  end
  if resource_api
    @resource_api = resource_api
    @api_url      = resource_api["path"].gsub("/v1/", "")
    @args         = args(@api_url)
  end
  if operation
    nickname = operation["nickname"]
    nickname = "#{@name}_#{nickname}" if [
      "upload_file",
      "query_by_course",
      "preview_processed_html",
      "create_peer_review_courses",
      "create_peer_review_sections",
      "set_extensions_for_student_quiz_submissions"
    ].include?(nickname)

    @method    = operation["method"]
    @operation = operation
    @nickname  = nickname
    @notes     = operation["notes"].gsub("\n", "\n// ")
    @summary   = operation["summary"]
  end
  if parameters
    @parameters = parameters.map { |p| p.delete("description"); p }
  end
  @content = content
  @model = model
end

Public Instance Methods

render() click to toggle source
# File lib/canvas_api/render.rb, line 64
def render
  ERB.new(@template, nil, "-").result(binding).strip
end
save(file) click to toggle source
# File lib/canvas_api/render.rb, line 68
def save(file)
  File.write(file, render)
end