Class: Chiridion::Engine::DocumentModel::ParamDoc

Inherits:
Data
  • Object
show all
Defined in:
lib/chiridion/engine/document_model.rb

Overview

Parameter documentation (method param or @option entry).

Examples:

Basic parameter

ParamDoc.new(name: "id", type: "String", description: "User ID", default: nil)

Optional with default

ParamDoc.new(name: "limit", type: "Integer", description: "Max results", default: "10")

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default

Returns:

  • (Object)

    the current value of default



26
27
28
# File 'lib/chiridion/engine/document_model.rb', line 26

def default
  @default
end

#descriptionObject (readonly)

Returns the value of attribute description

Returns:

  • (Object)

    the current value of description



26
27
28
# File 'lib/chiridion/engine/document_model.rb', line 26

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



26
27
28
# File 'lib/chiridion/engine/document_model.rb', line 26

def name
  @name
end

#prefixObject (readonly)

Returns the value of attribute prefix

Returns:

  • (Object)

    the current value of prefix



26
27
28
# File 'lib/chiridion/engine/document_model.rb', line 26

def prefix
  @prefix
end

#typeObject (readonly)

Returns the value of attribute type

Returns:

  • (Object)

    the current value of type



26
27
28
# File 'lib/chiridion/engine/document_model.rb', line 26

def type
  @type
end

Class Method Details

.extract_prefix(name) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/chiridion/engine/document_model.rb', line 49

def self.extract_prefix(name)
  s = name.to_s
  return "**" if s.start_with?("**")
  return "*" if s.start_with?("*")
  return "&" if s.start_with?("&")

  nil
end

.from_hash(h) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/chiridion/engine/document_model.rb', line 33

def self.from_hash(h)
  new(
    name:        h[:name]&.to_s,
    type:        normalize_type(h[:types]),
    description: h[:text],
    default:     h[:default],
    prefix:      extract_prefix(h[:name])
  )
end

.normalize_type(types) ⇒ Object



43
44
45
46
47
# File 'lib/chiridion/engine/document_model.rb', line 43

def self.normalize_type(types)
  return nil if types.nil? || types.empty?

  Array(types).first&.to_s
end