Module: StructuraidCore::DesignCodes::Utils::SchemaDefinition::ClassMethods
- Defined in:
- lib/structuraid_core/design_codes/utils/schema_definition.rb
Instance Method Summary collapse
Instance Method Details
#optional ⇒ Object
39 40 41 |
# File 'lib/structuraid_core/design_codes/utils/schema_definition.rb', line 39 def optional @optional end |
#required ⇒ Object
35 36 37 |
# File 'lib/structuraid_core/design_codes/utils/schema_definition.rb', line 35 def required @required end |
#structurize(params) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/structuraid_core/design_codes/utils/schema_definition.rb', line 26 def structurize(params) structured_args_names = [*required, *optional] structured_klass = Struct.new(*structured_args_names, :schema, keyword_init: true) sliced_params = params.slice(*structured_args_names) sliced_params.merge!(schema: name) structured_klass.new(sliced_params) end |
#validate!(params) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/structuraid_core/design_codes/utils/schema_definition.rb', line 12 def validate!(params) required.each do |required_param| raise DesignCodes::MissingParamError, required_param if params[required_param].nil? end optional.each do |optional_param| raise DesignCodes::MissingParamError, optional_param if params[optional_param].nil? rescue DesignCodes::MissingParamError => e Warning.warn(e.) end true end |