class ApidocoDsl::Param

Constants

SETTABLE

Attributes

param_description[RW]
param_key[RW]
param_notes[RW]
param_required[RW]
param_type[RW]
param_validations[RW]
params[RW]
parent[RW]

Public Class Methods

new(param_key:, param_type:, param_description: nil, param_notes: nil, param_validations: nil, param_required: false, parent: nil) click to toggle source
# File lib/apidoco_dsl/param.rb, line 10
def initialize(param_key:,
               param_type:,
               param_description: nil,
               param_notes: nil,
               param_validations: nil,
               param_required: false,
               parent: nil)

  @param_key         = param_key
  @param_type        = param_type
  @param_description = param_description
  @param_notes       = param_notes
  @param_validations = param_validations
  @param_required    = param_required
  @parent            = parent
  @params            = []
  @api               = parent.api
end

Public Instance Methods

display_key() click to toggle source
# File lib/apidoco_dsl/param.rb, line 55
def display_key
  return param_key.to_s unless @parent && @parent.is_a?(Param)
  return "[#{param_key.to_s}]"
end
doc_request_params() click to toggle source
# File lib/apidoco_dsl/param.rb, line 38
def doc_request_params
  @params
end
Also aliased as: doc_response_params
doc_response_params()
Alias for: doc_request_params
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/apidoco_dsl/param.rb, line 29
def method_missing(name, *args)
  return set_attribute(name, *args) if SETTABLE.include?(name.to_s)
  super
end
set_attribute(name, value) click to toggle source
# File lib/apidoco_dsl/param.rb, line 34
def set_attribute(name, value)
  self.send(:"param_#{name}=", value)
end
to_h() click to toggle source
# File lib/apidoco_dsl/param.rb, line 43
def to_h
  param = {}
  param['key'] =  compound_key
  param['type'] = param_type unless param_type.nil?
  param['description'] = param_description unless param_description.nil?
  param['notes'] = param_notes unless param_notes.nil?
  param['required'] = param_required
  param['validations'] = param_validations unless param_validations.nil?

  return param
end

Private Instance Methods

compound_key() click to toggle source
# File lib/apidoco_dsl/param.rb, line 62
def compound_key
  return param_key.to_s unless @parent && @parent.is_a?(Param)

  ancestors = []
  this_parent = @parent
  ancestor    = this_parent

  while ancestor
    ancestors << ancestor
    ancestor = ancestor.try(:parent)
  end

  keys = ancestors.map{|a| a.try(:display_key) }.reverse

  compounded = keys.map(&:to_s).join('')
  return compounded + display_key
end
push_to() click to toggle source
# File lib/apidoco_dsl/param.rb, line 80
def push_to
  @params
end