Class: Belt::ResponseModelBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/belt/route_dsl.rb

Constant Summary collapse

SUPPORTED_TYPES =
%i[string text number integer boolean date datetime array object map list].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ ResponseModelBuilder

Returns a new instance of ResponseModelBuilder.



824
825
826
827
828
# File 'lib/belt/route_dsl.rb', line 824

def initialize(name)
  @name = name
  @contexts = {}
  @fields = []
end

Instance Attribute Details

#contextsObject (readonly)

Returns the value of attribute contexts.



822
823
824
# File 'lib/belt/route_dsl.rb', line 822

def contexts
  @contexts
end

#fieldsObject (readonly)

Returns the value of attribute fields.



822
823
824
# File 'lib/belt/route_dsl.rb', line 822

def fields
  @fields
end

#nameObject (readonly)

Returns the value of attribute name.



822
823
824
# File 'lib/belt/route_dsl.rb', line 822

def name
  @name
end

Instance Method Details

#context(name) ⇒ Object



836
837
838
839
840
# File 'lib/belt/route_dsl.rb', line 836

def context(name, &)
  builder = ContextBuilder.new(name)
  builder.instance_eval(&) if block_given?
  @contexts[name] = builder
end

#to_hObject



842
843
844
845
846
# File 'lib/belt/route_dsl.rb', line 842

def to_h
  result = { name: @name.to_s, contexts: @contexts.transform_values(&:to_h) }
  result[:properties] = fields_to_properties unless @fields.empty?
  result
end