Class: ObjectModel::Metadata::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/ObjectModel/Metadata/name.rb,
lib/ObjectModel/Metadata/child.rb,
lib/ObjectModel/Metadata/events.rb,
lib/ObjectModel/Metadata/validate.rb,
lib/ObjectModel/Metadata/attribute.rb,
lib/ObjectModel/Metadata/reference.rb

Instance Method Summary collapse

Instance Method Details

#after(name, method = nil, &block) ⇒ Object



96
97
98
99
100
# File 'lib/ObjectModel/Metadata/events.rb', line 96

def after name, method = nil, &block
	name.should! :be_in, Metadata::AFTER_EVENT_TYPES
	e = Event.new method, &block
	@meta.after[name] = [e]
end

#attribute(name, type = :object, other = {}) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/ObjectModel/Metadata/attribute.rb', line 41

def attribute name, type = :object, other = {}				
	type.should! :be_in, Metadata::ATTRIBUTE_TYPES_SHORTCUTS
	values = {
		:name => name, 
		:ivname => name.to_iv, 
		:type => Metadata::ATTRIBUTE_TYPES_SHORTCUTS[type],
		:initialize => NotDefined
	}.merge(other)
	attr = Attribute.new.set_with_check values				
	@meta.attributes[name] = attr
	
	@klass._define_attribute attr
end

#before(name, method = nil, &block) ⇒ Object



102
103
104
105
106
# File 'lib/ObjectModel/Metadata/events.rb', line 102

def before name, method = nil, &block
	name.should! :be_in, Metadata::AFTER_EVENT_TYPES
	e = Event.new method, &block
	@meta.before[name] = [e]
end

#child(name, type = :single, other = {}) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/ObjectModel/Metadata/child.rb', line 40

def child name, type = :single, other = {}				
	type.should! :be_in, Metadata::CHILD_TYPES_SHORTCUTS
	values = {:name => name, :ivname => name.to_iv, :type => Metadata::CHILD_TYPES_SHORTCUTS[type]}.merge(other)
	child = Child.new.set_with_check values				
	@meta.children[name] = child
	
	@klass._define_child child
end

#name(name) ⇒ Object



14
15
16
17
# File 'lib/ObjectModel/Metadata/name.rb', line 14

def name name
	name.should_not! :be_nil
	@meta.name = name
end

#reference(name, type = :single, other = {}) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/ObjectModel/Metadata/reference.rb', line 40

def reference name, type = :single, other = {}				
	type.should! :be_in, Metadata::REFERENCE_TYPES_SHORTCUTS
	values = {:name => name, :ivname => name.to_iv, :type => Metadata::REFERENCE_TYPES_SHORTCUTS[type]}.merge(other)
	ref = Reference.new.set_with_check values				
	@meta.references[name] = ref
	
	@klass._define_reference ref
end

#validate(method = nil, &block) ⇒ Object



59
60
61
62
63
# File 'lib/ObjectModel/Metadata/validate.rb', line 59

def validate method = nil, &block
	vs = Validations.new
	vs << Validation.new(method, &block)
	@meta.validation = vs
end