module Formalist::Element::ClassInterface

Class-level API for form elements.

Public Instance Methods

attribute(name, default: nil) click to toggle source
# File lib/formalist/element/class_interface.rb, line 11
def attribute(name, default: nil)
  attributes(name => {default: default})
end
attributes_schema() click to toggle source
# File lib/formalist/element/class_interface.rb, line 15
def attributes_schema
  super_schema = superclass.respond_to?(:attributes_schema) ? superclass.attributes_schema : {}
  super_schema.merge(@attributes_schema || {})
end
type() click to toggle source
# File lib/formalist/element/class_interface.rb, line 7
def type
  Inflecto.underscore(Inflecto.demodulize(name)).to_sym
end

Private Instance Methods

attributes(new_schema) click to toggle source
# File lib/formalist/element/class_interface.rb, line 22
def attributes(new_schema)
  prev_schema = @attributes_schema || {}
  @attributes_schema = prev_schema.merge(new_schema)

  self
end