Sha256: 0b4463cee6e91c53fca163f1de34252ea0bf9f6a54d67bb5fef880b5572ede61
Contents?: true
Size: 1.11 KB
Versions: 10
Compression:
Stored size: 1.11 KB
Contents
module Finitio # # 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 # class MultiRelationType < Type include HeadingBasedType include RelBasedType def default_name "{{#{heading.to_name}}}" end end # class MultiRelationType end # module Finitio
Version data entries
10 entries across 10 versions & 1 rubygems