Class: ApiRegulator::SharedSchema
- Inherits:
-
Object
- Object
- ApiRegulator::SharedSchema
- Defined in:
- lib/api_regulator/shared_schema.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#responses ⇒ Object
readonly
Returns the value of attribute responses.
Instance Method Summary collapse
-
#initialize(name, description, &block) ⇒ SharedSchema
constructor
A new instance of SharedSchema.
- #param(name, type = nil, **options, &block) ⇒ Object
- #response(status_code, description_or_options, &block) ⇒ Object
Constructor Details
#initialize(name, description, &block) ⇒ SharedSchema
Returns a new instance of SharedSchema.
5 6 7 8 9 10 11 |
# File 'lib/api_regulator/shared_schema.rb', line 5 def initialize(name, description, &block) @name = name @description = description @params = [] @responses = {} instance_eval(&block) if block_given? end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
3 4 5 |
# File 'lib/api_regulator/shared_schema.rb', line 3 def description @description end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/api_regulator/shared_schema.rb', line 3 def name @name end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
3 4 5 |
# File 'lib/api_regulator/shared_schema.rb', line 3 def params @params end |
#responses ⇒ Object (readonly)
Returns the value of attribute responses.
3 4 5 |
# File 'lib/api_regulator/shared_schema.rb', line 3 def responses @responses end |
Instance Method Details
#param(name, type = nil, **options, &block) ⇒ Object
13 14 15 |
# File 'lib/api_regulator/shared_schema.rb', line 13 def param(name, type = nil, **, &block) @params << Param.new(name, type, **, &block) end |
#response(status_code, description_or_options, &block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/api_regulator/shared_schema.rb', line 17 def response(status_code, , &block) if .is_a?(Hash) && [:ref] # Reference to a shared schema resp_ref = [:ref] resp_desc = [:desc] || resp_ref @responses[status_code] = Param.new(:root, :object, ref: resp_ref, desc: resp_desc, &block) else # Inline schema definition schema = Param.new(:root, :object, desc: , &block) @responses[status_code] = schema end end |