Class: Operation
- Inherits:
-
Object
- Object
- Operation
- Defined in:
- lib/tiki/operation.rb
Instance Method Summary collapse
- #external_documentation(url = nil, &block) ⇒ Object
-
#initialize(operation_id = nil) ⇒ Operation
constructor
A new instance of Operation.
- #parameter(name = nil, ref: nil, **named, &block) ⇒ Object
- #request_body(*args, ref: nil, **named, &block) ⇒ Object (also: #request_body?, #body)
- #request_body!(*args, **named) ⇒ Object (also: #body!)
- #response(status = nil, schema = nil, description: nil, ref: nil, &block) ⇒ Object
- #responses(*statuses) ⇒ Object
- #tags(*tags) ⇒ Object
- #to_spec ⇒ Object
Constructor Details
#initialize(operation_id = nil) ⇒ Operation
17 18 19 20 |
# File 'lib/tiki/operation.rb', line 17 def initialize(operation_id = nil) @operation_id = operation_id @responses = [] end |
Instance Method Details
#external_documentation(url = nil, &block) ⇒ Object
22 23 24 25 |
# File 'lib/tiki/operation.rb', line 22 def external_documentation(url = nil, &block) @external_documentation = ExternalDocumentation.new url @external_documentation.instance_eval(&block) if block end |
#parameter(name = nil, ref: nil, **named, &block) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tiki/operation.rb', line 27 def parameter(name = nil, ref: nil, **named, &block) @parameters ||= [] if ref reference = Reference.new ref @parameters.push reference else parameter = Parameter.new name, **named parameter.instance_eval(&block) if block @parameters.push parameter end end |
#request_body(*args, ref: nil, **named, &block) ⇒ Object Also known as: request_body?, body
39 40 41 42 43 44 45 46 47 |
# File 'lib/tiki/operation.rb', line 39 def request_body(*args, ref: nil, **named, &block) if ref @request_body = Reference.new ref, :request_body else body = RequestBody.new(*args, **named) body.instance_eval(&block) if block @request_body = body end end |
#request_body!(*args, **named) ⇒ Object Also known as: body!
49 50 51 |
# File 'lib/tiki/operation.rb', line 49 def request_body!(*args, **named) request_body(*args, required: true, **named) end |
#response(status = nil, schema = nil, description: nil, ref: nil, &block) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/tiki/operation.rb', line 58 def response(status = nil, schema = nil, description: nil, ref: nil, &block) if ref @responses.push [status || 200, Reference.new(ref, :response)] else unless status.is_a?(Integer) || schema schema = status status = 200 end response = Response.new schema, description: description || reason(status) response.instance_eval(&block) if block @responses.push [status, response] end end |
#responses(*statuses) ⇒ Object
72 73 74 |
# File 'lib/tiki/operation.rb', line 72 def responses(*statuses) statuses.each { |status| response status } end |
#tags(*tags) ⇒ Object
76 77 78 |
# File 'lib/tiki/operation.rb', line 76 def (*) @tags = .flatten end |
#to_spec ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'lib/tiki/operation.rb', line 80 def to_spec props = {} scalar_props props array_props props hash_props props object_props props props end |