module Scrivito # # This class represents an attribute definition. # # @api public # class AttributeDefinition # # @!attribute [r] name # @api public # @return [String] the name of the attribute. # # @!attribute [r] type # @api public # @return [String] the type of the attribute. # attr_reader :name, :type def initialize(name, type, options = {}) @name, @type, @options = name.to_s, type.to_s, options.with_indifferent_access end # # Allowed values for an attribute. # # @api public # @return [Array] allowed values if +type+ is +enum+ or +multienum+ or an empty array # otherwise. If no values have been specified, an empty array is returned. # def values if type == 'enum' || type == 'multienum' @options[:values] || [] else [] end end def widgetlist? type == 'widgetlist' end end end