class GrapeMarkdown::Parameter

Attributes

full_name[R]
name[R]
route[R]
settings[R]

Public Class Methods

new(route, name, options) click to toggle source
# File lib/grape-markdown/parameter.rb, line 9
def initialize(route, name, options)
  @full_name = name
  @name      = name
  @name      = name.scan(/\[(.*)\]/).flatten.first if name.include?('[')
  @route     = route
  @settings  = parse_options(options)
end

Public Instance Methods

description() click to toggle source
# File lib/grape-markdown/parameter.rb, line 17
def description
  "#{name} (#{requirement}, #{type}, `#{example}`) ... #{desc}"
end

Private Instance Methods

default_options(_options) click to toggle source
# File lib/grape-markdown/parameter.rb, line 31
def default_options(_options)
  model = name.include?('_id') ? name.gsub('_id', '') : route.route_name

  {
    required: true,
    requirement: 'required',
    type: 'uuid',
    desc: "the `id` of the `#{model}`",
    documentation: { example: GrapeMarkdown::Configuration.generate_id }
  }
end
parse_options(options) click to toggle source
# File lib/grape-markdown/parameter.rb, line 23
def parse_options(options)
  options = default_options(options) if options.blank?

  options[:requirement] = options[:required] ? 'required' : 'optional'

  JSON.parse(options.to_json, object_class: OpenStruct)
end