Class: Belt::SchemaBuilder
- Inherits:
-
Object
- Object
- Belt::SchemaBuilder
- Defined in:
- lib/belt/route_dsl.rb
Overview
SchemaBuilder captures request and response model definitions from contracts.rb
Constant Summary collapse
- SUPPORTED_TYPES =
%i[string text number integer boolean date datetime 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.
745 746 747 748 |
# File 'lib/belt/route_dsl.rb', line 745 def initialize @request_models = {} @response_models = {} end |
Instance Attribute Details
#request_models ⇒ Object (readonly)
Returns the value of attribute request_models.
743 744 745 |
# File 'lib/belt/route_dsl.rb', line 743 def request_models @request_models end |
#response_models ⇒ Object (readonly)
Returns the value of attribute response_models.
743 744 745 |
# File 'lib/belt/route_dsl.rb', line 743 def response_models @response_models end |
Instance Method Details
#define ⇒ Object Also known as: draw
750 751 752 753 |
# File 'lib/belt/route_dsl.rb', line 750 def define(&) instance_eval(&) if block_given? self end |
#model(name) ⇒ Object
763 764 765 766 767 |
# File 'lib/belt/route_dsl.rb', line 763 def model(name, &) builder = ResponseModelBuilder.new(name) builder.instance_eval(&) if block_given? @response_models[name] = builder end |
#request(name) ⇒ Object
757 758 759 760 761 |
# File 'lib/belt/route_dsl.rb', line 757 def request(name, &) builder = RequestModelBuilder.new(name) builder.instance_eval(&) if block_given? @request_models[name] = builder end |
#to_h ⇒ Object
769 770 771 772 773 774 |
# File 'lib/belt/route_dsl.rb', line 769 def to_h { request_models: @request_models.transform_values(&:to_h), response_models: @response_models.transform_values(&:to_h) } end |