Class: Trane::OperationBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/trane/operation_definition.rb

Overview

Builder for Trane.operation :name do ... end

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ OperationBuilder

Returns a new instance of OperationBuilder.



107
108
109
110
111
112
113
# File 'lib/trane/operation_definition.rb', line 107

def initialize(name)
  @name = name.to_sym
  @summary = nil
  @request_builder = nil
  @responses = {}
  @error_keys = []
end

Instance Method Details

#buildObject



136
137
138
139
140
141
142
143
144
# File 'lib/trane/operation_definition.rb', line 136

def build
  OperationDefinition.new(
    name: @name,
    summary: @summary,
    request: @request_builder&.build,
    responses: @responses,
    error_keys: @error_keys
  )
end

#errors(&block) ⇒ Object



130
131
132
133
134
# File 'lib/trane/operation_definition.rb', line 130

def errors(&block)
  builder = ErrorKeysBuilder.new
  builder.instance_eval(&block)
  @error_keys = builder.keys
end

#request(&block) ⇒ Object



119
120
121
122
# File 'lib/trane/operation_definition.rb', line 119

def request(&block)
  @request_builder = RequestBuilder.new
  @request_builder.instance_eval(&block)
end

#response(status, &block) ⇒ Object



124
125
126
127
128
# File 'lib/trane/operation_definition.rb', line 124

def response(status, &block)
  builder = ResponseBuilder.new(status)
  builder.instance_eval(&block)
  @responses[status.to_i] = builder.build
end

#summary(text) ⇒ Object



115
116
117
# File 'lib/trane/operation_definition.rb', line 115

def summary(text)
  @summary = text
end