-require_dependency "manifest/model/attribute/source"
+ManifestBase.require_modules "manifest/model/attribute/",
+ %w|source|
+
module Manifest
module ModelModule
- class Attribute
+ class Attribute < ManifestBase::NameValues
include AttributeModule
- attr :model, :attribute_name, :attribute_manifest,
- :type, :primary_key, :rules, :source
- def initialize model, attribute_name, attribute_manifest
- @model = model
- @attribute_name = attribute_name
- @attribute_manifest = attribute_manifest
- self.set_default
- self.init
- end
+
+ attr :type, :primary_key, :rules, :source
def set_default
- raise "undefined type for models > #{self.model_name} > attributes > #{@attribute_name}\n" unless @attribute_manifest['type']
- @attribute_manifest['primary_key'] ||= 0
- @attribute_manifest['rules'] ||= {}
+ super
+ raise "undefined type for #{self.module_message}\n" unless @args['type']
+ @args['primary_key'] ||= 0
+ @args['rules'] ||= {}
end
def init
- @type = @attribute_manifest['type']
- @primary_key = @attribute_manifest['primary_key']
- @rules = @attribute_manifest['rules']
- if @attribute_manifest['source']
- @source = SourceFactory.factory(self, @attribute_name, @attribute_manifest['source'])
+ super
+ @primary_key = @args['primary_key']
+ @rules = @args['rules']
+ if @args['source']
+ @source = SourceFactory.factory(self, @name, @args['source'])
end
end
- def model_name
- @model.model_name
- end
-
- def model_manifest
- @model.model_manifest
- end
-
end
end