class Form < ManifestBase::Base
include FormModule
- def self.load manifest, jsons, module_name
- Hash[jsons[module_name]['base'].map {|name, json|
- [name, self.new(manifest, name, json, module_name)]
- }]
- end
-
attr :fields, :field_names
def set_default
def init
super
- @base = @json['base']
- @fields = ManifestBase.load_type_name_args self, @json, 'fields', FieldFactory
+ @fields = ManifestBase.load_name_values self, @json, 'fields', Field
@field_names = @json['field_names']
end
end
- class ExtendForm < Form
-
- attr :base
-
- def self.load manifest, jsons, module_name
- Hash[jsons[module_name]['extend'].map {|name, json|
- [name, self.new(manifest, name, json, module_name)]
- }]
- end
-
- def set_default
- super
- ManifestBase.alert_undefined_message 'base', self.module_message unless @json['base']
- end
-
- def init
- super
- @base = @json['base']
- @base_form = @manifest.forms[@base]
- ManifestBase.alert_undefined_message 'base form', self.module_message unless @base_form
- @fields.merge! @base_form.fields
- end
-
- end
-
end