Class: Finitio::MultiRelationType
- Includes:
- HeadingBasedType, RelBasedType
- Defined in:
- lib/finitio/type/multi_relation_type.rb
Overview
The MultiRelation type generator allows capturing sets of information facts, but allowing optional attributes. E. g.,
ColoredPoints = {{ point: Point, color :? Color }}
This class allows capturing those types, in a way similar to MultiTupleType:
ColoredPoints = MultiRelationType.new( Heading[...] )
A ruby Set is used as concrete representation, and will contain hashes that are valid representations of the associated multi tuple type:
R(ColoredPoints) = Set[ R({...}) ] = Set[Hash[...]]
Accordingly, the dress transformation function has the signature below. It expects an Enumerable as input and fails if any duplicate is found (after tuple transformation), or if any tuple fails at being transformed.
dress :: Alpha -> ColoredPoints throws TypeError
dress :: Object -> Set[Hash[...]] throws TypeError
Constant Summary
Constants included from Metadata
Finitio::Metadata::EMPTY_METADATA
Instance Attribute Summary
Attributes included from HeadingBasedType
Instance Method Summary collapse
Methods included from RelBasedType
#dress, #generate_data, #include?, #representator, #to_json_schema
Methods included from HeadingBasedType
#==, #[], #hash, #initialize, #resolve_proxies, #unconstrained
Methods inherited from Type
#==, #anonymous?, #dress, #include?, #initialize, #name, #name=, #named?, #resolve_proxies, #to_s, #unconstrained
Methods included from Metadata
#metadata, #metadata=, #metadata?
Instance Method Details
#default_name ⇒ Object
29 30 31 |
# File 'lib/finitio/type/multi_relation_type.rb', line 29 def default_name "{{#{heading.to_name}}}" end |
#suppremum(other) ⇒ Object
33 34 35 |
# File 'lib/finitio/type/multi_relation_type.rb', line 33 def suppremum(other) super(other, RelationType, MultiRelationType) end |