Class: TypedParameter::Base
- Inherits:
-
Object
- Object
- TypedParameter::Base
- Defined in:
- lib/typed_parameter/base.rb
Class Method Summary collapse
- .constraints ⇒ Object
- .field(name, type, **kargs) ⇒ Object
- .permit(params) ⇒ Object
- .ref ⇒ Object
- .swagger_properties ⇒ Object
- .swagger_requirements ⇒ Object
Class Method Details
.constraints ⇒ Object
41 42 43 |
# File 'lib/typed_parameter/base.rb', line 41 def constraints __constraints.freeze end |
.field(name, type, **kargs) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/typed_parameter/base.rb', line 4 def field(name, type, **kargs) if block_given? raise Error::InvalidBlockParameter unless [type].flatten[0].in?([Hash, Object]) block_param_name = "#{self.to_s}_Partial_#{name.to_s.camelize}" class_eval("class ::#{block_param_name} < ::TypedParameter::Base; end") block_param = block_param_name.constantize yield(block_param) if type.is_a?(Array) target = [block_param] else target = block_param end else target = type end initialize_constraints(name, target, kargs) initialize_swagger_properties(name, target, kargs) end |
.permit(params) ⇒ Object
27 28 29 30 31 |
# File 'lib/typed_parameter/base.rb', line 27 def permit(params) raise Error, "params class must be ActionController::Parameters" unless params.class <= ActionController::Parameters use_constraints(params).permit! end |
.ref ⇒ Object
47 48 49 |
# File 'lib/typed_parameter/base.rb', line 47 def ref "#/components/schemas/#{key}" end |
.swagger_properties ⇒ Object
33 34 35 |
# File 'lib/typed_parameter/base.rb', line 33 def swagger_properties __swagger_properties.freeze end |
.swagger_requirements ⇒ Object
37 38 39 |
# File 'lib/typed_parameter/base.rb', line 37 def swagger_requirements __swagger_requirements.freeze end |