class ActiveFacts::Metamodel::ValueRange
Public Instance Methods
effective_maximum()
click to toggle source
Note the mismatched return types here:
# File lib/activefacts/metamodel/extensions.rb, line 1077 def effective_maximum maximum_bound ? maximum_bound.value : Infinity end
effective_minimum()
click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1081 def effective_minimum minimum_bound ? minimum_bound.value : -Infinity end
includes?(range)
click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1085 def includes? range if ValueRange === range range.effective_minimum >= effective_minimum && range.effective_maximum <= effective_maximum # elsif Bound === range # REVISIT: use self.includes?(range.value) with is_literal_string, etc else range >= effective_minimum && range <= effective_maximum end end
inspect()
click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1072 def inspect to_s end
to_s(infinity = true)
click to toggle source
# File lib/activefacts/metamodel/extensions.rb, line 1042 def to_s(infinity = true) min = minimum_bound max = maximum_bound # Open-ended string ranges will fail in Ruby if min = minimum_bound min = min.value if min.is_literal_string min_literal = min.literal.inspect.gsub(/\A"|"\Z/,"'") # Escape string characters else min_literal = min.literal end else min_literal = infinity ? "-Infinity" : "" end if max = maximum_bound max = max.value if max.is_literal_string max_literal = max.literal.inspect.gsub(/\A"|"\Z/,"'") # Escape string characters else max_literal = max.literal end else max_literal = infinity ? "Infinity" : "" end min_literal + (min_literal != (max&&max_literal) ? (".." + max_literal) : "") end