Sha256: 99e14f2855134307c63aca006609b53958433de1117a2307874ce7e9362d74dc
Contents?: true
Size: 696 Bytes
Versions: 4
Compression:
Stored size: 696 Bytes
Contents
require "inflecto" module Formalist class Element # Class-level API for form elements. module ClassInterface def type Inflecto.underscore(Inflecto.demodulize(name)).to_sym end def attribute(name, default: nil) attributes(name => {default: default}) end def attributes_schema super_schema = superclass.respond_to?(:attributes_schema) ? superclass.attributes_schema : {} super_schema.merge(@attributes_schema || {}) end private def attributes(new_schema) prev_schema = @attributes_schema || {} @attributes_schema = prev_schema.merge(new_schema) self end end end end
Version data entries
4 entries across 4 versions & 1 rubygems