class ActiveFacts::Metamodel::PresenceConstraint

Public Instance Methods

all_constrained_role() click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1180
def all_constrained_role
  role_sequence.all_role_ref.map(&:role)
end
covers_role(role) click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1176
def covers_role role
  role_sequence.all_role_ref.map(&:role).include?(role)
end
describe() click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1170
def describe
  min = min_frequency
  max = max_frequency
  'PresenceConstraint over '+role_sequence.describe + " occurs " + frequency + " time#{(min&&min>1)||(max&&max>1) ? 's' : ''}"
end
frequency() click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1160
def frequency
  min = min_frequency
  max = max_frequency
  [
      ((min && min > 0 && min != max) ? "at least #{min == 1 ? "one" : min.to_s}" : nil),
      ((max && min != max) ? "at most #{max == 1 ? "one" : max.to_s}" : nil),
      ((max && min == max) ? "#{max == 1 ? "one" : "exactly "+max.to_s}" : nil)
  ].compact * " and "
end