Class: ActiveFacts::Metamodel::ValueConstraint

Inherits:
Constraint
  • Object
show all
Defined in:
lib/activefacts/metamodel/metamodel.rb,
lib/activefacts/metamodel/extensions.rb

Instance Method Summary collapse

Instance Method Details

#all_allowed_range_sortedObject



1013
1014
1015
1016
1017
1018
# File 'lib/activefacts/metamodel/extensions.rb', line 1013

def all_allowed_range_sorted
  all_allowed_range.sort_by{|ar|
      ((min = ar.value_range.minimum_bound) && min.value.literal) ||
        ((max = ar.value_range.maximum_bound) && max.value.literal)
    }
end

#all_constrained_roleObject



1030
1031
1032
# File 'lib/activefacts/metamodel/extensions.rb', line 1030

def all_constrained_role
  Array(role_as_role_value_constraint) # Empty unless it's a role value constraint
end

#as_cqlObject



1003
1004
1005
1006
1007
1008
1009
1010
1011
# File 'lib/activefacts/metamodel/extensions.rb', line 1003

def as_cql
  "restricted to "+
    ( if regular_expression
        '/' + regular_expression + '/'
      else
        '{' + all_allowed_range_sorted.map{|ar| ar.to_s(false) }*', ' + '}'
      end
    )
end

#describeObject



999
1000
1001
# File 'lib/activefacts/metamodel/extensions.rb', line 999

def describe
  as_cql
end

#to_sObject



1020
1021
1022
1023
1024
1025
1026
1027
1028
# File 'lib/activefacts/metamodel/extensions.rb', line 1020

def to_s
  if all_allowed_range.size > 1
  "[" +
    all_allowed_range_sorted.map { |ar| ar.to_s(true) }*", " +
  "]"
  else
    all_allowed_range.single.to_s
  end
end