Class: Belt::SchemaBuilder
- Inherits:
-
Object
- Object
- Belt::SchemaBuilder
- Defined in:
- lib/belt/route_dsl.rb
Overview
SchemaBuilder captures request and response model definitions from schema.tf.rb
Constant Summary collapse
- SUPPORTED_TYPES =
%i[string number integer boolean array object map list].freeze
Instance Attribute Summary collapse
-
#request_models ⇒ Object
readonly
Returns the value of attribute request_models.
-
#response_models ⇒ Object
readonly
Returns the value of attribute response_models.
Instance Method Summary collapse
- #define ⇒ Object (also: #draw)
-
#initialize ⇒ SchemaBuilder
constructor
A new instance of SchemaBuilder.
- #model(name) ⇒ Object
- #request(name) ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize ⇒ SchemaBuilder
Returns a new instance of SchemaBuilder.
450 451 452 453 |
# File 'lib/belt/route_dsl.rb', line 450 def initialize @request_models = {} @response_models = {} end |
Instance Attribute Details
#request_models ⇒ Object (readonly)
Returns the value of attribute request_models.
448 449 450 |
# File 'lib/belt/route_dsl.rb', line 448 def request_models @request_models end |
#response_models ⇒ Object (readonly)
Returns the value of attribute response_models.
448 449 450 |
# File 'lib/belt/route_dsl.rb', line 448 def response_models @response_models end |
Instance Method Details
#define ⇒ Object Also known as: draw
455 456 457 458 |
# File 'lib/belt/route_dsl.rb', line 455 def define(&) instance_eval(&) if block_given? self end |
#model(name) ⇒ Object
468 469 470 471 472 |
# File 'lib/belt/route_dsl.rb', line 468 def model(name, &) builder = ResponseModelBuilder.new(name) builder.instance_eval(&) if block_given? @response_models[name] = builder end |
#request(name) ⇒ Object
462 463 464 465 466 |
# File 'lib/belt/route_dsl.rb', line 462 def request(name, &) builder = RequestModelBuilder.new(name) builder.instance_eval(&) if block_given? @request_models[name] = builder end |
#to_h ⇒ Object
474 475 476 477 478 479 |
# File 'lib/belt/route_dsl.rb', line 474 def to_h { request_models: @request_models.transform_values(&:to_h), response_models: @response_models.transform_values(&:to_h) } end |