Module: Factbase::Ordering
- Included in:
- Term
- Defined in:
- lib/factbase/terms/ordering.rb
Overview
Ordering terms.
- Author
-
Yegor Bugayenko ([email protected])
- Copyright
-
Copyright © 2024-2025 Yegor Bugayenko
- License
-
MIT
Instance Method Summary collapse
Instance Method Details
#prev(fact, maps, fb) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/factbase/terms/ordering.rb', line 14 def prev(fact, maps, fb) assert_args(1) before = @prev v = _values(0, fact, maps, fb) @prev = v before end |
#unique(fact, maps, fb) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/factbase/terms/ordering.rb', line 22 def unique(fact, maps, fb) @uniques = {} if @uniques.nil? raise "Too few operands for 'unique' (at least 1 expected)" if @operands.empty? results = [] @operands.each_with_index do |_, i| @uniques[i] = [] if @uniques[i].nil? vv = _values(i, fact, maps, fb) return false if vv.nil? vv = [vv] unless vv.respond_to?(:to_a) vv.each do |v| if @uniques[i].include?(v) results << false else @uniques[i] << v results << true end end end return false if results.all?(false) true end |