Class: J8::BinaryOperator

Inherits:
BiFunction show all
Defined in:
lib/j8/binary_operator.rb

Class Method Summary collapse

Methods inherited from BiFunction

#apply, #then

Methods included from Common

callable_from_proc, from_callable, from_callable_class, initialize, lambda?, make_lambda, raise_unless_lambda

Class Method Details

.max_by(comparator = nil, &block) ⇒ Object



5
6
7
8
9
# File 'lib/j8/binary_operator.rb', line 5

def self.max_by(comparator = nil, &block)
  callable = from_callable_class(comparator, block, J8::Comparator)

  J8::BinaryOperator.new(->(a, b) { callable.compare(a, b) <= 0 ? a : b })
end

.min_by(comparator = nil, &block) ⇒ Object



11
12
13
14
15
# File 'lib/j8/binary_operator.rb', line 11

def self.min_by(comparator = nil, &block)
  callable = from_callable_class(comparator, block, J8::Comparator)

  J8::BinaryOperator.new(->(a, b) { callable.compare(a, b) >= 0 ? a : b })
end