module Apia::DSLs::Concerns::HasFields
Public Instance Methods
field(name, *args, type: nil, **options, &block)
click to toggle source
# File lib/apia/dsls/concerns/has_fields.rb, line 11 def field(name, *args, type: nil, **options, &block) type = args[0] if type.nil? field = Definitions::Field.new(name, id: "#{@definition.id}/#{Helpers.camelize(name)}Field") if type.is_a?(Array) field.type = type[0] field.array = true else field.type = type field.array = false end field.null = options[:null] if options.key?(:null) field.array = options[:array] if options.key?(:array) field.include = options[:include] if options.key?(:include) field.backend = options[:backend] if options.key?(:backend) field.description = options[:description] if options.key?(:description) field.dsl.instance_eval(&block) if block_given? @definition.fields.add(field) end