Sha256: 184720090f33a9b668da6bba6e19129c9ecd113b3711cca9b91f1b12f0d8e1dc
Contents?: true
Size: 1.56 KB
Versions: 10
Compression:
Stored size: 1.56 KB
Contents
# frozen_string_literal: true require 'rspec/rails/api/entity_config' require 'rspec/rails/api/utils' module RSpec module Rails module Api # Represents an entity field configuration. # A field have some options and a method to serialize itself. class FieldConfig attr_accessor :required, :type, :attributes, :description def initialize(type:, required: true, description:, attributes: nil, of: nil) @required = required @description = description raise "Field type not allowed: '#{type}'" unless Utils.check_attribute_type(type) define_attributes attributes if type == :object define_attributes of if type == :array @type = type end def to_h out = { required: @required, type: @type } out[:description] = @description unless @description.nil? if %i[object array].include?(@type) && @attributes out[:attributes] = if @attributes.is_a? EntityConfig @attributes.to_h elsif attributes.is_a? Symbol @attributes end end out end private def define_attributes(attributes) @attributes = if attributes.is_a? Hash @attributes = EntityConfig.new attributes elsif attributes.is_a? Symbol attributes end end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems